我正在尝试在 Eclipse 中运行以下代码,但控制台保持空白,直到我停止程序,此时输出“输入下一个值(
似乎 scanf 出于某种原因将一些默认值放入了......不知道为什么。在程序停止之前我什么也没看到,所以我认为这可能与 printf 没有被刷新有关,但我确保使用\n 强制刷新。
有任何想法吗?
#include <stdio.h>
const int MIN_PER_HOUR = 60; // minutes per hour
int main(void)
{
int hour, min, left;
printf("Convert minutes to hours and minutes!\n");
printf("Enter the number of minutes (<=0 to Quit):\n");
scanf("%d", &min); // read number of minutes
while(min > 0){
hour = min / MIN_PER_HOUR; // truncated number of hours
left = min % MIN_PER_HOUR; // number of minutes left over
printf("%d minutes is %d hours, %d minutes.\n", min, hour, left);
printf("Enter next value (<=0 to quit)");
scanf("%d", &min);
}
printf("Done!\n");
return 0;
}
最佳答案
Eclipse 的终端模拟器可能会有所不同,并进行更多缓冲。尝试在打印输出和调用 fflush(stdout);
之间调用 scanf()
。
关于c - Eclipse/MinGW 中的 scanf 问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1897227/