【问题标题】:'C for Dummies' getchar() function not working'C for Dummies' getchar() 函数不起作用
【发布时间】: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 你错了。

标签: c getchar


【解决方案1】:

请输入任意键,然后第二个 printf 将显示结果。 getchar() 期待用户输入,控制器到达第 2 行并等待输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2021-03-08
    相关资源
    最近更新 更多