码迷,mamicode.com
首页 > 其他好文 > 详细

EOF

时间:2016-01-17 06:28:22      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

EOF(End Of File)表示在系统中没有更多的数据可从文件或流中读取的情况。通常人们会在文件尾插入一个他们选择的EOF字符,以此为信号表示文件已结束。

在UNIX中,由击键转换为EOF的解释由终端驱动来进行,因此程序不需将终端和其他输入文件区分开。默认情况下,驱动将在一行开始处的ctrl+d字符解释为EOF。若要插入一个ctrl+d字符(ASCII 04),则需要先输入ctrl+v,然后再输入ctrl+d。

1 get = getchar();
2 put = putchar(get);
3 
4 /* 若输入ctrl+d,get的值为-1, put的值为255
5 若输入ctrl+v和ctrl+d,get和put的值均为4 */
6 printf("get = %d, put = %d", get, put);

在C标准库中,例如getchar函数,它必须要能区分文件中的有效数据和结束符。C语言使用的策略是在无输入时,getchar返回会返回一个值等于符号值(宏)EOF的数来表示已到文件尾。EOF的值通常由系统决定(在glibc中为-1),但它不等于任何有效的字符值。

程序调用getchar时,等待用户在终端输入,输入的字符被放入键盘缓冲区内,直到用户输入回车(回车字符也放在缓冲区内)或ctrl+d(向终端发出一个信号EOF,表示此行已结束)为止。然后将键盘输入作为一个标准输入流(stdin)交给getchar处理。

第一次调用getchar,将从stdin流中读取第一个字符,并将字符的ASCII返回给程序。第二次调用时,将读取第二个字符,以此类推,直至遇到回车或EOF为止。遇到回车将返回换行符(\n),遇到EOF则返回EOF表示文件结束。当遇到错误时,也会返回EOF。此时需要用ferror函数来判断EOF是表示文件结束还是错误。

EOF

标签:

原文地址:http://www.cnblogs.com/0xhao/p/5136657.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!