#include <stdio.h>
#ifndef EOF
#define EOF (-1)
#endif
int main(void)
{
int nb, nl, nt, c;
nb = 0;
nl = 0;
nt = 0;
while ((c = getchar()) != EOF){
if (c == ' ')
++nb;
else if (c == '\n')
++nl;
else if (c == '\t')
++nt;
}
printf("Input has %d blanks, %d tabs, and %d newlines\n", nb, nt, nl);
return 0;
}
爲什麼這段代碼不工作?EOF不能在while循環中爲getchar()在Ubuntu 11.10中工作
我在我的Ubuntu 11.10上編譯了這段代碼。如果我將EOF
替換爲\n
,則按預期工作,但不會與EOF一起工作。
你是什麼意思*不使用EOF *? –
縮進,請嗎? – hivert
空白,製表符和換行符的數量不會隨着循環連續而停止如何停止它 – Mux