我开始学习 C 和我的一个朋友(比我大)The C Programming Language
由Brian Kernighan和Dennis Ritchie建议。
然而,在尝试一些示例时,它们的行为与预期不同,并且与书中所写的不同。
例如,这个似乎不起作用(什么都不打印):
#include <stdio.h>
#define IN 1
#define OUT 0
/* count lines, words, and characters in input */
int 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);
return 0;
}
你认为我应该继续读这本书吗,也许只有几个错误,值得一读?或者有一本适合 C 初学者的更好的书。
编辑:我的假设是用ENTER
密钥发送输入会模拟EOF
,但事实并非如此。CTRL+Z
做。
感谢您的帮助。