在尝试调试一些 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;
}
调用 printf() 时,程序终止或遇到换行符后将显示输出。
但由于您在 printf() 之后调用无限循环,因此程序不会终止,并且缓冲区的输出不会显示。
Use fflush(stdout)
强制显示缓冲区的输出
stdout
标准输出流是应用程序的默认输出目的地。在大多数系统中,它通常默认定向到文本控制台(通常在屏幕上)。
The fflush()
函数导致系统清空缓冲区
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)