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,代表文件结束。