学习《C程序设计语言》这本书的时候,在讲到,字符输入\输出这一节的时候,用到了EOF(End of File)。但是用于while循环体的时候,你会发现无法结束循环,如下:
while((c=getchar())!=EOF) //EOF:文件结尾标志
尤其是在统计字符串的时候,初学者往往会陷入一种误区,按回车代表着结束,但是我们按照下面这种代码来实现统计字符串功能,会发现无论按多少次回车都不会得到结果,这是因为EOF在windows中需要回车,再Ctrl+Z,才能实现功能。
#include<stdio.h>
void main()
{
int n=0;
int c;
/*需要注意/0、/n、EOF的区别
用EOF的时候要按住Ctrl+Z
*/
// while(c=(getchar())!='\n') //输入完按回车就行
while(c=(getchar())!=EOF)
n++;
printf("%d",n);
}
如果换成如下这种形式,其中‘\n’代表着换行,也就是统计这一行中出现了多少个字符。这时候,输入完字符串后按回车键是能实现字符统计功能的。
while(c=(getchar())!='\n')