我是C语言的初学者,想知道我的代码在这里有什么问题:
#include "stdio.h"
int main(void)
{
int a;
printf("Please input an integer value: ");
scanf("%d", &a);
printf("You entered: %d\n", a);
return 0;
}我的问题是,在进行任何控制台输出之前,我必须键入一个值,例如,如果我键入7,则会得到以下控制台输出:请输入一个整数值:您输入:7
我在另一台计算机上尝试了完全相同的代码,它工作得很好,我猜是缓冲区问题吧?但是我不知道如何修复它..有什么想法吗?
发布于 2020-02-19 04:12:17
如前所述,要保证在代码中的该点打印该行,您可以像这样刷新标准输出,
#include "stdio.h"
int main(void)
{
int a;
printf("Please input an integer value: ");
fflush(stdout);
scanf("%d", &a);
printf("You entered: %d\n", a);
return 0;
}你可以阅读这篇文章以了解更多细节,Why does printf not flush after the call unless a newline is in the format string?
更新感谢@Osiris评论
https://stackoverflow.com/questions/60288218
复制相似问题