这是我的代码[注意:我在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
答案 0 :(得分:1)
你可以在第一次printf之后调用fflush(stdout)来打印缓冲输出。但考虑到将来如果用更多的printfs扩展程序,那么在每个printf之后添加fflush将是一个开销。所以你可以添加
setbuf(stdout,NULL)
就在所有printfs之前。 这将确保没有缓冲输出,您将立即看到打印。