我正在尝试在 C 中创建一个循环,其中程序计算 2 个数字的平均值,然后等待用户输入。如果用户输入是“G”,则循环将中断。然而,这目前不起作用,因为它(以一种奇怪的方式)是一个无限循环。
我的代码是:
while(1){
pogingen++;
gem = (minimum+maximum)/2;
printf("%i",gem);
scanf("%c",&invoer);
if(invoer=='L'){
maximum = gem;
}
if(invoer=='H'){
minimum = gem;
}
if(invoer=='G'){
printf("%i",pogingen);
break;
}
}
我使用以下值对其进行了测试:最小值 = 1,最大值 = 10。结果将是 5 的无限循环。它甚至不等待用户输入(这是它应该做的。)
预先感谢您查看此内容!
最佳答案
它甚至不等待用户输入(它应该这样做。)
。
程序没有等待获取输入意味着输入缓冲区中还剩下一些字符。可能来自先前输入的 \n
。因此,在读取输入之前清除输入缓冲区。
你可以把,
getchar();
scanf("%c",&invoer);
循环内 scanf()
之前;
关于c - 在 while(1) 循环中等待用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22782741/