我有以下代码:
#include<stdio.h>
int main(){
int a = 1, b = 8;
while(a != b)
{
printf("asd");
fflush(stdout);
}
return 0;
}
显然,该计划永远不会停止。但为什么“asd”根本没有印刷?
编辑:这是完整的计划。没有任何其他线路。我第一次使用Eclipse和MinGW并且它没有打印任何东西。我在linux中尝试使用gcc,它按预期工作,即使没有fflush! 因此,这种行为可能是由于某些编译器优化代码并修改无限循环这一事实造成的。
答案 0 :(得分:11)
fflush(stdin)
没有意义,事实上根据标准会导致未定义的行为 - 您可能意味着fflush(stdout)
。如果你做了那个改变,你会看到输出。