【发布时间】:2016-12-21 05:35:52
【问题描述】:
我目前正处于学习 C 编程的早期阶段,并且正在使用 Code::Blocks 完成“用 C 语言开始编程”。
第 7 章的第一个活动,使用getchar() 获取字符,要求我们完全按照书中介绍的方式复制代码;见下文:
#include <stdio.h>
int main()
{
int c;
printf("I'm waiting for a character: ");
c = getchar();
printf("I waited for the '%c' character.\n", c);
return (0);
}
我得到的输出是:
I'm waiting for a character:
但是根据本书,我应该看到的输出是字符的 ASCII 码值。然后它要求我将 %c 占位符更改为 %d 以显示该值,但我仍然得到与以前相同的结果。我可能可以闭着眼睛背诵代码我已经检查过很多次了;我根本看不出哪里出错了。
我认为getchar() 函数未被识别是否正确?或者在第一个 printf 语句之后没有读取代码?欢迎任何指导,因为在我理解问题之前我不想继续前进。
【问题讨论】:
-
看到
I'm waiting for a character:后,你输入字符了吗? -
试试
printf("I'm waiting for a character: ");fflush(stdout); -
注意:
int main()是一个已弃用的签名。使用原型风格的声明:int main(void)(适用于所有函数,而不仅仅是main)。return不是函数,而是语句。不要在参数周围使用括号,这可能会导致拼写错误的奇怪错误消息。 function-syle 用于 K&R C,今天它更像是一个坏习惯。 -
@Prometheus 你错了。
-
@Prometheus stackoverflow.com/questions/18013167/…