菜鸟问题,随便来个高手解释
#include<stdio.h>#include<stdlib.h>
int main()
{
FILE *fp;
char ch,filename;
printf("请输入所用的文件名:");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("无法打开此文件\n");
exit(0);
}
ch=getchar(); //用来接收最后输入的回车符 <<<<<-------------高手什么意思??
printf("请输入要输入的字符串并以“#”字符结束\n");
ch=getchar;
while(ch!='#')
{
fputc(ch,fp);
putchar(ch);
ch=getchar();
}
fclose(fp);
putchar(10);
return 0;
}
唯一注释的地方,为什么说“用来接收最后输入的回车符”?这句话什么意思,求解释
scanf("%s",filename); 这句话执行时以回车符结束,此时回车符还在输入缓冲区中。
ch=getchar(); 这句话的意义就是讲这个多余的回车符取出来。 看一看~~~~~ sidfate 发表于 2014-5-4 14:40 static/image/common/back.gif
scanf("%s",filename); 这句话执行时以回车符结束,此时回车符还在输入缓冲区中。
ch=getchar(); 这句话 ...
好像不加也不碍事吧,????
不对,你的事正解,我想错了,应为后来还要从stdin里面读取
其实也可以换成rewind(fp);
我一般是通过这种方式来清空缓冲区的·
呵呵 putchar(10);
你的这个是什么意思,表示不理解,还有
你前面写了一个ch=getchar;
这种写法是被允许的吗:dizzy::dizzy::dizzy::dizzy: putchar(10);的意思是打出一个换行符,换行符的ASCII码是10。
ch=getchar();打少了括号
页:
[1]