等待输入时隐藏 C 控制台输出
C console output hidden while awaiting input
您好,我正在 Eclipse 上尝试一些 C 编码,但我遇到了一个问题:
我正在尝试打印一些文本,但是,在等待用户输入时,文本实际上无法显示,直到用户输入之后。
这是我的意思的一个例子:
测试
#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
"test" printf 不会在提示我输入代码之前出现,而是仅在我输入代码之后出现。
可能要打印的文本仍在缓冲区中等待(这是一种优化,将要写入的数据分组以提高效率)。为确保缓冲区中的所有内容都到达控制台,您应该像这样刷新它
fflush(stdout);
或者您可以使用不使用缓冲的函数,例如(linux)
write()
您好,我正在 Eclipse 上尝试一些 C 编码,但我遇到了一个问题:
我正在尝试打印一些文本,但是,在等待用户输入时,文本实际上无法显示,直到用户输入之后。
这是我的意思的一个例子: 测试
#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
"test" printf 不会在提示我输入代码之前出现,而是仅在我输入代码之后出现。
可能要打印的文本仍在缓冲区中等待(这是一种优化,将要写入的数据分组以提高效率)。为确保缓冲区中的所有内容都到达控制台,您应该像这样刷新它
fflush(stdout);
或者您可以使用不使用缓冲的函数,例如(linux)
write()