| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 616 人关注过本帖
标题:初学C`遇到问题
只看楼主 加入收藏
hlhlhl2002
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-1-14
收藏
 问题点数:0 回复次数:2 
初学C`遇到问题
#include <stdio.h>

#define IN 1
#define OUT 0

main()
{
     int c, nl , nw, nc, state;
     
     state = OUT;
     nl = nw = nc = 0;
     while((c = getchar()) != EOF)
     {
      ++nc;
      if (c == '\n')
          ++nl;
      if (c == ' ' || c == '\n' || c == '\t')
           state = OUT;
       else if (state == OUT)
         {
          state = IN;
            ++nw;
          }
     }
      printf("%d %d %d\n", nl, nw, nc);
}


这个程序是我看书上写的一个统计 行数  单词数 的一个小程序
但是我在很多编译器下都看不到结果
在Turbo C2.01英文下   win - tc 下
按ctrl+F9时  都只有一个cmd输入框
按程序命令 我打字时应该记录 行数等信息 并 打印出来
但是我输入后  就只有我 打的单词  没有行数等信息
按alt+F5 也不行``
求教~  谢谢``
搜索更多相关主题的帖子: 初学 
2008-01-17 07:58
闪闪4521
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-11-30
收藏
得分:0 
while((c = getchar()) != EOF)
这一句判断循环结束时EOF是文件的结束标志,
你在cmd输入框中输入字符串后循环永远无法结束。
所以无法显示后面的信息,
2008-01-17 09:05
hlhlhl2002
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-1-14
收藏
得分:0 
我明白啦``
也就是说`
当 c == ‘EOF’ 时
程序的运算才回结束
并 返回运算结果`
但是EOF是无法从键盘输入
所以 会无限循环下去 不会给结果的 是吧``
2008-01-17 09:42
快速回复:初学C`遇到问题
数据加载中...
 
   



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

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