在Eclipse中,在printf之前执行Scanf

2022-02-24 00:00:00 c printing ide eclipse scanf

我有以下简单的C语言代码:

#include <stdio.h>

int main(){
    printf("Give an integer:
");
    int x;
    scanf("%d",&x);
    printf("10*%d=%d
",x,10*x);

    return 0;
}

使用CodeBlockIDE它以正确的顺序执行,但当我使用Eclipse IDE时,它会跳过 添加到scanf命令,然后根据需要打印消息。有人能解释一下吗?

提前感谢您


解决方案

通常stdout设置为缓冲的行。显然,您的某个IDE将其设置为完全缓冲。

您可以使用fflush()强制打印转储关联的缓冲区,例如

printf("hello ");   // works in unbuffered stream
printf("world!
"); // works in line buffered stream
fflush(stdout);     // works in fully buffered stream

相关文章