Printf()在某些机器(包括我的机器)上可能表现不正确。
printf("\n number of factor %d\n", sum);
fflush(stdout);
if(sum == 0)
{
printf("\n The number %d is prime", p);
}
代码首先打印出变量“sum”,如果总和为零则打印出数字。
虽然第一个printf
打印正确,但第二个printf
语句不会打印。
我在这里错过了什么吗?
答案 0 :(得分:1)
您要么在printf
格式字符串的末尾错过换行符,要么在fflush
fflush
很重要的例子// file exflu.c
#include <stdio.h>
#include <unistd.h>
int main(int argc, char**argv) {
int i=0;
printf ("without newline from %s", argv[0]);
// add perhaps a fflush(stdout); here
sleep(5);
scanf ("%d", &i);
printf(" i=%d\n", i);
return 0;
}
使用和不使用fflush
时观察上述程序;如果没有它,则会在五秒钟后显示消息(因为scanf
可能隐含地执行了fflush(NULL)
。)