c语言的问题,求大神们帮忙解答,以下程序为什么一定要加入 getchar();

#include<stdio.h>
#include<process.h>
main()
{
FILE *fp;
char filename[30],str[30];/*定义两个字符型数组*/
printf("please input filename:\n");
scanf("%s",filename);/*输入文件名*/
if((fp=fopen(filename,"w"))==NULL)/*判断文件是否打开失败*/
{
printf("can not open!\npress any key to continue:\n");
getchar();
exit(0);
}
printf("please input string:\n");/*提示输入字符串*/
getchar();
gets(str);
fputs(str,fp);/*将字符串写入fp所指向的文件中*/
fclose(fp);
}
字符串的输入和输出不是用不着考虑回车吗

第一个 getchar是为了让屏幕暂停。 但在这里并没有效果。不加也一样。
第二个getchar 是因为前面有一个scanf %s, 这句是不会读\n的。
但下面用的是gets , 遇到第一个\n就会返回。 所以需要把之前的\n读走,不然就会出错。
如果下面不用gets,而是一样用scanf 那就不需要getchar了,但是遇到空格就会停。追问

多谢

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网