【发布时间】:2014-02-21 07:55:11
【问题描述】:
#include <stdio.h>
#ifndef EOF
#define EOF (-1)
#endif
int main(void)
{
int nb, nl, nt, c;
nb = 0;
nl = 0;
nt = 0;
while ((c = getchar()) != EOF){
if (c == ' ')
++nb;
else if (c == '\n')
++nl;
else if (c == '\t')
++nt;
}
printf("Input has %d blanks, %d tabs, and %d newlines\n", nb, nt, nl);
return 0;
}
为什么这段代码不起作用?
我在我的 Ubuntu 11.10 上编译了这段代码。如果我将EOF 替换为\n,它会按预期工作,但不能使用EOF。
【问题讨论】:
-
不使用 EOF 是什么意思?
-
请缩进?
-
空格、制表符和换行符的数量没有出现,因为循环是连续的如何停止它
-
您应该接受其中一个答案,它解决了您的问题。
标签: c ubuntu-11.10