C语言中的EOF

测试字符数

#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自定义的话,那如果判断是否为文件或者标准流的结束?




你可能感兴趣的:(C语言,eof)