c中printf命令的顺序

nso*_*res 1 c printf

我正在尝试学习c,我刚刚开始观看一些在线视频,并试图做这个例子,但我的结果不是我所期望的.这段代码只是输入一个数字并打印出你输入的数字,但是我不知道它出了什么问题.

 #include <stdio.h>

int main(void) {
    int aNumber;
    printf("Please enter a number: ");
    scanf("%d", &aNumber);
    printf("you entered %d", aNumber);
    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行这段代码时,它应该要求用户输入一个数字而不是它什么也没做,直到我输入一个数字,输出是这样的:

5
请输入一个数字:您输入了5

在我输入5的地方,按回车键,然后代码打印出声明.任何人都可以告诉我为什么订单出错了.它应该是

请输入一个数字:5
您输入5

首先弹出"请输入数字:",然后输入5,依此类推.

小智 5

您很可能需要刷新stdout才能显示输出.要做这个电话fflush(stdout).如果你不这样做,一些输出可能会被缓冲,导致你看到的.

#include <stdio.h>

int main(void) {
    int aNumber;
    printf("Please enter a number: ");
    fflush(stdout);
    scanf("%d", &aNumber);
    printf("you entered %d", aNumber);
    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)