gpt4 book ai didi

c - 使用 getchar() 和 putchar() 的非常简单的 C 问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:56 25 4
gpt4 key购买 nike

你好,我正在自学 C 并阅读 K & R 书,但我遇到了一些麻烦(我正在运行 OS X)。这是来自第 1.5.1 节“文件复制”,它应该以一个字符作为输入,然后输出该字符。这是代码:

#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

然后当我运行输出文件(在终端中)时它有一个小空间,然后当我输入一个字母时,说我输入

一个

然后我按回车键

然后我换了一行。如果我随后按下一个新键,屏幕就会开始变得疯狂,到处都是问号。

我不确定我是否说得通,但我发现这是一个奇怪的问题。非常感谢您提前

最佳答案

第二个赋值应该是c = getchar();。通过省略括号,您将 getchar 函数的地址分配给 c,这很可能不是您想要的。

此外,在 main 的末尾,您需要行 return 0; 或类似的行,以摆脱“控制到达非空函数的末尾”警告。

关于c - 使用 getchar() 和 putchar() 的非常简单的 C 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com