测试字符数
#include"stdio.h"
main()
{
int c;
long n = 0;
c = getchar();
while(c != EOF)
{
++n;
c = getchar();
}
printf("%ld\n", n);
getch();
}
两点: 如果将getchar()拿到循环外面,那么在循环里面一定要在写一遍
EOF不是手动输入的EOF为结束,而是:windows下ctrl+z linux下 ctrl+d
Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一行的中间按下Ctrl-D,则表示输出"标
准输入"的缓存区,所以这时必须按两次Ctrl-D);Windows中,Ctrl-Z表示EOF。(顺便提一句,Linux
中按下Ctrl-Z,表示将该进程中断,在后台挂起,用fg命令可以重新切回到前台;按下Ctrl-C表示终止该
进程。)
那么,如果真的想输入Ctrl-D怎么办?这时必须先按下Ctrl-V,然后就可以输入Ctrl-D,系统就不会认为
这是EOF信号。Ctrl-V表示按"字面含义"解读下一个输入,要是想按"字面含义"输入Ctrl-V,连续输入两
次就行了。
#include"stdio.h"
main()
{
int c;
long n = 0;
while((c = getchar()) != EOF)
{
++n;
}
printf("%ld\n", n);
getch();
}
问题:如果将EOF自定义的话,那如果判断是否为文件或者标准流的结束?