私はCと、ブライアン・カーニハンとデニス・リッチーThe C Programming Language
によって提案された私の友人(私より年上)を学び始めました。
ただし、いくつかの例を試している間、それらは予想とは異なる動作をし、本に書かれているとおりには動作しません。
たとえば、これは機能していないようです(何も出力されません):
#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
します。
助けてくれてありがとう。