当前位置: 代码迷 >> C语言 >> 初学C`遇到问题
  详细解决方案

初学C`遇到问题

热度:672   发布时间:2008-01-17 07:58:26.0
初学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 也不行``
求教~  谢谢``
搜索更多相关的解决方案: 初学  

----------------解决方案--------------------------------------------------------
while((c = getchar()) != EOF)
这一句判断循环结束时EOF是文件的结束标志,
你在cmd输入框中输入字符串后循环永远无法结束。
所以无法显示后面的信息,
----------------解决方案--------------------------------------------------------
我明白啦``
也就是说`
当 c == ‘EOF’ 时
程序的运算才回结束
并 返回运算结果`
但是EOF是无法从键盘输入
所以 会无限循环下去 不会给结果的 是吧``
----------------解决方案--------------------------------------------------------