在尝试调试某些C代码时,我发现如果放在无限循环之前,printf()将不会执行。有人知道为什么吗?实际上这不是什么大不了的事情,但对于调试来说这是一场噩梦。打印语句在无限循环之前不会打印
#include<stdio.h>
int main()
{
int data;
printf("This prints fine.\n");
printf("Enter data: ");
scanf("%d", &data);
printf("This should print but it doesn't.\n");
while(1)
{
//Infinite Loop
}
return 0;
}
试过? 'fflush(stdout)' – MarcDefiant
是的,这是有效的。这里到底发生了什么? – amishjack
我更喜欢将调试信息打印到stderr,它通常不会被缓冲。 –