读书人

为什么会出错解决方案

发布时间: 2012-03-11 18:15:38 作者: rapoo

为什么会出错
#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 的值 造成死循环~

读书人网 >C语言

热点推荐