簡介: 我是C編程的初學者,我的指南推薦了Brain W. Kernighan的「The C Programming Language」。在閱讀這本書的時候,我遇到了一個並不像預期那樣工作的代碼。修改C代碼以處理提供的輸入
問題:即使在輸入我想要的文本後,控制檯仍在等待更多輸入。基本上,控制檯無法知道何時開始處理輸入。如果有人可以對代碼提出修改建議,這樣可以讓用戶指示編譯器開始處理已提供的輸入,這將非常有幫助。
代碼:
#include <stdio.h>
#define IN 1 // inside a word
#define OUT 0 // outside a word
// program to count number of 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);
}
附加信息:
書:C程序設計語言 - 由Brian W. Kernighan的
章:入門教程(第20頁)
使用Xcode版本8.3.3(8E3004b)
按Ctrl + Z(或Unix中的D)。或像'./your_program
BLUEPIXY
你應該真的得到一本新書。 C語言的一些語法自1988年以來已經發生了變化。 – stark
@stark如果你能推薦一些涵蓋現代語法的其他書籍,我會很高興 –