我用於計算輸入行數的代碼似乎可行。那就是:計數行「The C Programming Language」K&R
#include <stdio.h>
int main()
{
int counter = 0;
while(getchar() != EOF)
{
if(getchar() == '\n')
{
counter += 1;
}
}
printf("Counter: %d", counter);
return 0;
}
但我的問題是,爲什麼以K &的r的書,他們都儲存在它只是測試是在while循環條件真或假的變量中的getchar的返回值?我認爲沒有理由這樣做。
ķ&的r版本:
#include <stdio.h>
main()
{
int c, nl;
nl = 0;
while ((c = getchar()) != EOF)
if (c == '\n') ++nl;
printf("%d\n", nl);
}
的通知 「INT c」 被存儲的getchar的返回值。
如果文件中的第一個字符是換行符會發生什麼?如果你連續有兩條新線?你第一次打電話給getchar()咀嚼一個字符,並且你無法知道究竟是什麼東西。 –
@GeorgeMitchell我明白了,謝謝喬治。 –
Think是每次調用'getchar()'讀取一個字符,讀一行,其中許多人繼續'\ n'爲:嘗試輸入文件'每個$'a \ n \ n \ n \ nb'> inputfile' –