| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 616 人关注过本帖
标题:请教 关于EOF的问题
只看楼主 加入收藏
langren2526
Rank: 2
等 级:论坛游民
帖 子:46
专家分:37
注 册:2010-3-12
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
请教 关于EOF的问题
记录输入字符个数的程序:

#include <stdio.h>                           

int main (void)
{
    int iCount = 0;

    while (getchar () != EOF)
        iCount++;
   
    printf ("%d\n", iCount);
    return 0;
}
假如输入 Tell me why!Ctrl+Z 为什么按Enter键以后不立即显示iCount的值,
还是等待输入状态? 再按Ctrl+Z组合键,然后按Enter才会显示iCount的值。
如果把EOF 换成 &后者别的字符却没有上面所说的情况。
搜索更多相关主题的帖子: EOF 
2010-07-24 18:55
flyingcat
Rank: 4
来 自:HDU
等 级:业余侠客
威 望:2
帖 子:55
专家分:230
注 册:2010-7-18
收藏
得分:2 
因为!=EOF的意思是读到文件末尾
如果想要按下Enter显示iCount的值,建议使用gets()他获取一个到换行符为终止的字符串
char text[2012];
while(gets(text))
2010-07-24 19:08
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1697
专家分:4305
注 册:2007-12-27
收藏
得分:8 
因为Ctrl+Z本身并不是EOF
只有它放在一个新行开头的时候才会被系统解释为EOF

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2010-07-24 21:18
langren2526
Rank: 2
等 级:论坛游民
帖 子:46
专家分:37
注 册:2010-3-12
收藏
得分:0 
谢谢
2010-07-28 23:13
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:0 
你试一下这段代码,你可能就明白了。
#include <stdio.h>

int main (void)
{
    int iCount = 0;
    char gch='\0';
    while ((gch=getchar(),gch) != EOF)
    {
        iCount++;
        printf("%c\n",gch);
    }
    printf("%d\n",iCount);
    return 0;
}

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2010-07-28 23:23
快速回复:请教 关于EOF的问题
数据加载中...
 
   



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

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