Chinaunix首页 | 论坛 | 博客
  • 博客访问: 710417
  • 博文数量: 214
  • 博客积分: 5015
  • 博客等级: 大校
  • 技术积分: 2285
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-18 17:02
文章分类

全部博文(214)

文章存档

2008年(43)

2007年(171)

我的朋友

分类:

2007-12-12 10:32:00

测试代码:

#include

/*  count.c  */
main()
{
   int i=0;
   while (getchar() != EOF)
       ++i;
   printf("%d ", i);
}


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

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

#od -c a.txt

0000000    a     c   d 
0000005

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

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

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

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

阅读(1028) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~