关于EOF

发表于:2007-05-26来源:作者:点击数: 标签:
EOF不是文件中有的。只不过是一个文件操作函数,在文件结尾操作时候返回的错误码。不要认为文件中含有EOF。 换行和回车是在文件中都有的,分别是/n和/r在 UNIX 和DOS中的文本中有不同的表达。 测试代码: #include /* count.c */ main() { int i=0; while (g


EOF不是文件中有的。只不过是一个文件操作函数,在文件结尾操作时候返回的错误码。不要认为文件中含有EOF。

换行和回车是在文件中都有的,分别是/n和/r在UNIX和DOS中的文本中有不同的表达。

测试代码:

#include

/*  count.c  */
main()
{
   int i=0;

   while (getchar() != EOF)
       ++i;
   printf("%d\n", i);
}



#cc count.c -o count
#cat a.txt
a
bc
#count5
#

运行结果为5,那么最后一行是不是除了包含一个EOF,是不是也有一个换行符?

#od -c a.txt

0000000    a  \n   c   d  \n
0000005

EOF不是文件中有的。只不过是一个文件操作函数,在文件结尾操作时候返回的错误码。不要认为文件中含有EOF。

换行和回车是在文件中都有的,分别是/n和/r在UNIX和DOS中的文本中有不同的表达。

EOF在UNIX中输入是ctrl+d,在win中是ctrl+z。

也就是说,标准输入/输出在处理文本流时,若取不到字符,即返回错误码EOF,代表文件结束。

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)