初学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是无法从键盘输入
所以 会无限循环下去 不会给结果的 是吧``
----------------解决方案--------------------------------------------------------