你好我正在教自己C和通過K & R書,我有一些麻煩(我正在運行OS X)。這是來自第1.5.1節「文件複製」,它應該把一個字符作爲輸入,然後輸出該字符。這裏是代碼:使用getchar()和putchar()的非常簡單的C問題
#include <stdio.h>
/* -- Copy input to output -- */
int main(void)
{
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar;
}
}
所以,我認爲我的問題不是與代碼本身,而是與編譯和運行。首先,當編譯我收到以下錯誤
/Volumes/Goliath/Dropbox/C programs/prog1_5_1.c: In function ‘main’:
/Volumes/Goliath/Dropbox/C programs/prog1_5_1.c:12: warning: assignment makes integer from pointer without a cast
/Volumes/Goliath/Dropbox/C programs/prog1_5_1.c:16: warning: control reaches end of non-void function
然後當我運行輸出文件(終端),它有一個狹小的空間,然後當我輸入了一封信,說我鍵入
一
然後我打回來
我又換了一條新線。如果我然後點擊一個新的鍵,屏幕開始瘋狂與遍地的問號。
我不確定自己是否合理,但我發現這是一個奇怪的問題。非常感謝您提前
或者,你可以原型主要爲void:'void main(void)' – Mel 2011-05-09 02:07:29
@Mel:與C標準相反。 'main'應該總是返回一個'int'。 – jwodder 2011-05-09 02:08:24
是的,真的,你得到一個編譯器*警告*,但有效的程序。當啓動C時,應該意識到有很多方法可以搞砸。 :) – Mel 2011-05-09 02:15:58