为什么printf在预期时没有被调用?

时间:2017-07-21 11:33:24

标签: c printf

这是我的代码[注意:我在Windows平台上使用Eclipse for C / C ++]

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

int main(void) {
    int num;
    printf("Enter a number:\n");
    scanf("%d",&num);
    if(num%2==0)
        printf("Number is Even");
    else
        printf("Number is Odd");
    return EXIT_SUCCESS;
}

这里我必须首先输入一个Integer然后才调用printf ...我想在输入Integer之前先调用printf ...我在这里做错了什么?

例如,这是我得到的输出

6
Enter a number:
Number is Even

和期望的输出是

Enter a number:
6
Number is Even

1 个答案:

答案 0 :(得分:1)

你可以在第一次printf之后调用fflush(stdout)来打印缓冲输出。但考虑到将来如果用更多的printfs扩展程序,那么在每个printf之后添加fflush将是一个开销。所以你可以添加

  

setbuf(stdout,NULL)

就在所有printfs之前。 这将确保没有缓冲输出,您将立即看到打印。