你好我正在教自己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