我是C的初學者,我購買了「C語言程序設計」一書,並開始閱讀並完成它所說的一切。書中有一個代碼應該列出句子的行數,字數和字符數。這是本書的代碼。程序不打印數字
#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);
}
出於某種原因,應該用printf打印出的值沒有顯示出來。我真的不知道什麼是錯的。如果將printf放在while循環中,它只會打印出數字,但這不可能是正確的,因爲每次值更改時都會打印數字。
它看起來對我很好。如果將它放入調試器並在printf上放置一個斷點並等待它達到,會發生什麼情況。是否有可能printf正在執行,然後命令窗口在你真正看到輸出之前關閉?嘗試在printf之後添加一個getchar()。 –
請注意,您已寫入c ='\ t'而不是c =='\ t'。 –
這肯定是本書的一個錯字。我也在printf後面放了一個getchar(),但沒有任何反應。 – captain