我是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
我在另一台计算机上尝试了完全相同的代码,并且效果很好,我想这是缓冲区问题?但我不知道如何解决它。
正如已经提到的其他内容,为了确保在代码的那个点将打印该行,您可以像这样刷新标准输出,
#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评论进行了更新