我寫了接受輸入的一個字符,輸出該字符的程序,這樣爲什麼getchar調用printf會停止工作?
int ch = getchar();
printf("%c", ch);
它的工作就像我的預期。然後我決定首先歡迎並打印Hello
。
printf("Hello!\n");
int ch = getchar();
printf("%c", ch);
令我驚訝的是,這引起了編譯器扔了兩個錯誤:
錯誤C2065: '頻道':未聲明的標識符
錯誤C2143:語法錯誤:缺少 ';' 'type'
我沒有明白爲什麼添加第一行會導致這種情況發生。無論如何,我重構了程序來擺脫int
聲明,並且錯誤消失了。
printf("Hello!\n");
printf("%c", getchar());
發生了什麼事?什麼是導致這些錯誤出現然後消失的魔法?
你使用什麼編譯器?此代碼在gcc 4.4.3上無錯誤。 –
@AdamCadien我正在使用Visual Studio 2010附帶的MSVC的任何版本。 –