在我的程序中,我只是计算东西的成本。不过,最后我想在程序上稍作休息,让用户只需按Enter按钮。我本以为getchar()在这里可以工作,但它甚至没有停止,只是继续打印。我甚至尝试在scanf(“%s”)这样的扫描格式后面加一个空格。
所以有两件事我应该如何停止程序来请求getchar()的输入,以及如何让它只识别一个enter按钮。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char hotels_houses[5];
int houses, hotels, cost;
printf("Enter amount of houses on board: \n");
scanf("%s", hotels_houses);
houses = atoi(hotels_houses);
printf("Enter amount of hotels on board: \n");
scanf("%s", hotels_houses);
hotels = atoi(hotels_houses);
printf("Cost of houses: %d\n", houses);
printf("Cost of hotels: %d\n", hotels);
cost = (houses *40) + (hotels * 115);
puts("Click enter to calculate total cash ");
getchar(); /* just a filler */
printf("Total cost: %d\n", cost);
return(0);
}
最佳答案
我最好的猜测是,它在用户输入完他们的输入后检索剩余的换行符。您可以打印出要验证的返回值。如果我是正确的,它将是“10”或“13”取决于你的操作系统。
您可能想将程序更改为使用getline。还有其他关于如何在How to read a line from the console in C?处编写get行的示例
关于c - 为什么我的getchar()在这里不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22082838/