在等待输入时隐藏C控制台输出

时间:2015-09-28 08:19:45

标签: c eclipse input console output

您好我在Eclipse上尝试了一些C编码,我遇到了一个问题:

我正在尝试打印一些文本,但是,在等待用户输入时,文本实际上无法显示,直到用户输入后。

这是我的意思的一个例子: TEST

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

int main(void){

    char c[5];  
    printf("test\n");  //PRINTING 'test' BEFORE i have to enter code    
    fgets(c, 5, stdin);     
    printf("You entered: %s\n", c);

    return 0; 
}

输出:

dog (this is what i typed)
test
You entered: dog

而不是出现之前我被提示输入代码,&#34;测试&#34; printf仅在我输入代码后出现。

1 个答案:

答案 0 :(得分:0)

这个要打印的文本可能仍然在缓冲区中等待(这是一种优化,要对数据进行分组以使其更有效)。要确保缓冲区中的所有内容都出现在控制台中,您应该像这样刷新它

fflush(stdout);

或者您可以使用不使用缓冲的函数(在Linux上)

write()