关于C语言中的EOF到底按不按CTRL+Z的疑问

我从<thecprogramminglanguage>(第2版,中文版,徐宝文译)这本书中看到了EOF,以下这个程序#include<stdio.h>//统计输入的字符数... 我从<the c programming language>(第2版,中文版,徐宝文译)这本书中看到了EOF,以下这个程序
#include <stdio.h> //统计输入的字符数
int main()
{
long nc;
nc=0;
while(getchar()!=EOF)
++nc;
printf("%ld\n",nc);
return 0;
}
需要按下CTRL+Z作为EOF的标志,然而依然是这本书上的例子却直接按回车,不用按CTRL Z就行了,为什么?
#include <stdio.h>
#define NONBLANK 'a'
//replace string of blanks with a single blank
//输入复制到输出,把连续的多个空格用一个空格代替
int main()
{
int c,lastc;
lastc=NONBLANK;
while((c=getchar())!=EOF)
{
if(c!=' ')
putchar(c);
if(c==' ')
if(lastc!=' ')
putchar(c);
lastc=c;
}
}
展开
 我来答
左手烟雨
2012-12-14 · TA获得超过785个赞
知道小有建树答主
回答量:446
采纳率:100%
帮助的人:252万
展开全部
如果是从键盘输入的话,需要ctrl+z,你上面两个程序都需要;
如果是从文件中读取,就不需要ctrl+z,例如:
fp = fopen("test.txt", "r");
while(fgetc(fp) != EOF)
{
..............

}
loboho
2012-12-14 · TA获得超过506个赞
知道小有建树答主
回答量:441
采纳率:100%
帮助的人:411万
展开全部
你上例仍然要按ctrl+z啊,如果是while((c=getchar())!='\n')就按回车即可
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Tidus_forever
2012-12-14 · TA获得超过4399个赞
知道大有可为答主
回答量:2782
采纳率:100%
帮助的人:1859万
展开全部
两个程序不都是用EOF 作为标志?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式