【发布时间】:2016-09-19 19:45:21
【问题描述】:
我在 Windows 10 x86 64 位计算机上运行 Netbeans 8.1,我将项目的 Run>Console Type 设置为 Standard Output,因为无论是内部终端还是外部终端都不适用于我制作的任何其他来源 - - 标准输出有。无论如何,这是我试图运行的代码:
int main(void){
float original_amount, amount_with_tax;
printf("Enter an amount: ");
scanf("%f", &original_amount);
amount_with_tax = original_amount * 1.05f;
printf("With tax added: $%.2f\n", amount_with_tax);
exit(EXIT_SUCCESS);
}
这是输出:
3
输入金额:加税:$3.15
运行成功(总时间:4s)
如您所见,扫描功能在程序甚至打印“输入金额:”之前读取数字。此外,在我注释掉 scanf 函数后,它按预期打印了两个 printf 语句。我一直在努力解决这个问题,感谢任何帮助,谢谢!
【问题讨论】:
-
试试
printf("Enter an amount: ");fflush(stdout); -
成功了!这仅仅是因为我使用标准输出作为我的运行控制台而有必要吗?如果是这样,我应该把它放在任何将使用访问缓冲区的函数的程序的开头吗?谢谢
-
也许我认为那是因为您在 IDE 中运行。如果您想直接在控制台上运行,可能不需要。
标签: c netbeans scanf netbeans-8.1