为什么会出错
#include <stdio.h>
#include <stdlib.h>
#define NULL 0
int main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen("filename","w"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
ch=getchar();
ch=getchar();
while(ch!='#')
{
fputc(ch,fp);
putchar(ch);
}
putchar(10);
fclose(fp);
return 0;
}
[解决办法]
#include <stdio.h>
#include <stdlib.h>
#define NULL 0
int main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
ch=getchar();
ch=getchar();
while(ch!='#')
{
fputc(ch,fp);
ch=getchar();
}
putchar(10);
fclose(fp);
return 0;
}
[解决办法]
while(ch!='#')
{
fputc(ch,fp);
putchar(ch);
}
循环中 没有改变 ch 的值 造成死循环~