| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 519 人关注过本帖
标题:新人,求解while与printf...
只看楼主 加入收藏
haxl2003
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-11-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
新人,求解while与printf...
希望各位大佬能够指点在下。。
程序代码:
#include <stdio.h>
/*统计输入的行数*/
void main()
{
    long nc;
   
    for (nc = 0; getchar() != EOF; ++nc)
        printf("count is %1d\n", nc);
}

结果如图
图片附件: 游客没有浏览图片的权限,请 登录注册

为什么printf 会执行两次呢
2011-11-06 16:15
不知VC
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-11-6
收藏
得分:0 
for (nc = 0; getchar() != EOF;++nc)
这一句你首先需要了解它的执行顺序
2011-11-06 16:38
wuyijiang07
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:74
专家分:177
注 册:2011-10-21
收藏
得分:10 
输入的时候enter键也不是EOF被getchar读入系统,应该是这个原因
2011-11-06 16:51
wangshui125
Rank: 2
等 级:论坛游民
帖 子:28
专家分:36
注 册:2011-10-25
收藏
得分:0 
回车也算一个字符
2011-11-06 16:55
逆时光飞
Rank: 2
等 级:论坛游民
帖 子:27
专家分:49
注 册:2011-11-5
收藏
得分:10 
#include <stdio.h>
/*统计输入的行数*/
void main()
{
    long nc;
   
    for (nc = 0; getchar() != EOF; ++nc)
          {
getchar();这个地方加一个输入的 用来输enter的就不会被统计两次了 应该
        printf("count is %1d\n", nc);
}
}


2011-11-06 17:00
haxl2003
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-11-6
收藏
得分:0 
回复 3楼 wuyijiang07
恩。。谢谢啦。。真的是这个原因。。。
看来是我对 getchar() 这个函数还不够理解。。
2011-11-06 19:13
haxl2003
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-11-6
收藏
得分:0 
回复 5楼 逆时光飞
谢谢了。。按照你的方法,搞定了。谢谢哈。
2011-11-06 19:13
快速回复:新人,求解while与printf...
数据加载中...
 
   



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

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