标题:[求助]关于EOF
取消只看楼主
ptr
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-7-19
 问题点数:0 回复次数:1 
[求助]关于EOF

一直有细节上的问题让我模糊,请帮帮忙.
  关于EOF,很清楚,我的理解一直都是END OF FILE,在头文件<stdio.h>中定义,是一个整形数,其值经过测试也知道是-1.
  然后,在如下程序段中,

while((c=getchar())!=EOF)
purchar(c;)

也就是说,c如果遇到EOF的话,则循环停止,很明显C是一个char类型,如果输入是1,对于C来说并不是数值上的1,应该是'1',相当于整数的49吧. 

  但是在实际应用中,在命令行下若要退出上面循环,我们输入的应该是CTRL+Z.在我平时应用中,一般用'#'等不经常用的来作为循环结束标志.
  那么EOF在实际应用中应该在文件中起作用吧.那么,这个EOF的标记是系统自动添加的吗?如同字符串数组中末尾的'\0'?能不能举例来说明下?
  另外,其整数的值对应的为-1,那么ctrl+z与这个-1有关系吗?我所知道的ASC11字符集中都是0-127啊.
  
  可能问题简单,请指教下~

[此贴子已经被作者于2006-7-22 11:11:24编辑过]

搜索更多相关主题的帖子: EOF 整形 定义 整数 
2006-07-22 10:59
ptr
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-7-19
得分:0 

  明白了,谢谢楼上,我一时傻了,EOF是getchar的返回址,我一直竟然以为EOF是GETCHAR读入值.-1哪能跟ctrl+z有上关系?
  26的ASCII码值是sub,以前不知道是通过ctrl+z输入的~

2006-07-22 11:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-79662-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.125602 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved