【问题标题】:how to write down something to console before getting user input in C?如何在 C 中获取用户输入之前写下一些内容到控制台?
【发布时间】:2021-08-24 06:31:45
【问题描述】:

我只是想在获取用户输入之前使用 C 语言向控制台写下一些内容,但它总是要求输入,然后当我按下 Enter 键时,它会在获取用户输入之前打印我想要打印的内容。 我正在使用 Eclipse IDE(版本 2020 -09),我的编译器是 Cygwin。 这就是我试图做到这一点的方式:

#include <stdio.h>

int main() {

    printf("please enter your name: ");
        char a[3];
        gets(a);
        return 0;

}

【问题讨论】:

    标签: c eclipse input console


    【解决方案1】:

    默认情况下通常会缓冲输出。

    您可以通过在printf() 之后调用fflush(stdout) 来显式刷新输出缓冲区,例如:

    #include <stdio.h>
    
    int main() {
        printf("please enter your name: ");
        fflush(stdout); // <-- here
        char a[3];
        gets(a);
        return 0;
    }
    

    或者,您可以在输出中包含\n,例如:

    #include <stdio.h>
    
    int main() {
        printf("please enter your name: \n");
        char a[3];
        gets(a);
        return 0;
    }
    

    【讨论】:

    • 感谢您回复第一个解决方案非常完美,但我不知道为什么第二个解决方案不起作用您认为是因为我的编译器吗?或者我在安装时错过了一个包? (我正在使用 Cygwin)。
    猜你喜欢
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多