首页 > 解决方案 > C 中 scanf 和 printf 的输出行为(Eclipse 控制台)

问题描述

如果这可能很明显,请原谅我,但到目前为止我还没有找到答案。到目前为止,我主要是在使用 Java 之后才开始学习一些 C 基础知识。

我尝试按照教程进行操作,目前对 printf 和 scanf 在 Eclipse 控制台中的行为方式感到非常困惑。

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    char character;
    printf("Enter a character: ");

    scanf("%c", &character);

    printf("Character: %c",character);
    return 0;
}

根据链接的教程,我期望发生的事情:

Enter a character: _

我期待这条线被打印到控制台,然后等待我的输入_作为占位符,然后再打印Character: _。这种行为是我在 Java 中所期望的。

实际发生的情况:

在运行我的代码时,控制台完全是空的。起初我花了 2 个小时认为程序根本没有执行。幸运的是,我随后注意到空控制台只是我提示用户输入的提示。一旦我输入了一个字符并按下回车键,printf 就会被写入控制台,如下所示:

a
Enter a character: 
Character: a

这种行为是否正常,我对这种行为的期望完全错误?如果是这样,我将如何实现我想要的行为,即首先出现输入字符的提示?

标签: ceclipseprintfscanf

解决方案


推荐阅读