在我的程序中,我只是计算东西的成本。不过,最后我想在程序上稍作休息,让用户只需按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/

10-15 02:21