#include <stdio.h>
#define IN 1 /* inside a word */
#define OUT 0 /* outside a word */
/* count lines, words, and characters in input */
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);
}
我得到了K&amp; R书,但有一些代码无法编译!
它给了我 - 19 C:\ Users \ Nom \ Desktop \ Untitled1.c赋值中的无效左值
编辑:现在它有效,谢谢你们,但现在它什么都没做! printf语句不起作用。它打开dos控制台,我输入任何内容,它只返回一个新行。我正在使用Dev-C ++ 4.9.9.2
编辑:我将printf语句放在while循环中,现在可以正常工作了。感谢
答案 0 :(得分:6)
在if (c == ' ' || c == '\n' || c = '\t')
中,最后=
应该是==
答案 1 :(得分:2)
if (c == ' ' || c == '\n' || c = '\t')
你在决赛或条款中缺少=
,应该是
if (c == ' ' || c == '\n' || c == '\t')
^^ here