通过按任意键退出"do while"而不按回车键?

Exiting a "do while" by pressing any key without hitting enter?

本文关键字:回车 do 任意键 退出 while      更新时间:2023-10-16

我的代码无法正常工作时遇到问题。我试图让它退出 do,同时按键盘上的任何键,但没有按回车键。我的代码片段如下。

void LemonadeBuyANDCheck()
{
    int iCupsToBuy = rand() % (MAX_CUPS - MIN_CUPS) + MIN_CUPS;

    bool continueLoop = true;
    do 
    {
        int Userinput = 1;
        Userinput = !_kbhit();
        fflush(stdin);
        if (Userinput == 1)
        {
            continueLoop = false;
        }
        StoreIsOpen();
        int randomNumber = rand() % 100;
        if (iCupsOfLemonadeInStock == 0)
        {
            cout << "Customer came to buy some lemonade but you didnt have any in stock :(n";
            //continueLoop = false;
        }
        else if (randomNumber <= 25)
        {
            cout << "Wow your lemonade is way too expensive!n";
            iCustomerCounter++;
        }
        else if (randomNumber >= 75)
        {
            cout << "Eww your recipe for lemonade... Wow..n";
            iCustomerCounter++;
        }

        else if (iCupsOfLemonadeInStock >= iCupsToBuy)
        {
            cout << "You sold " << iCupsToBuy << "cups of lemonade!n";
            iCupsOfLemonadeInStock = iCupsOfLemonadeInStock - iCupsToBuy;
            iCupsOfLemonadeSold = iCupsOfLemonadeSold - iCupsToBuy;
            //Money
            fMoneyEarned += (iCupsToBuy * fCurrentLemonadePrice);
            fCurrentMoney += (iCupsToBuy * fCurrentLemonadePrice);
            iCustomerCounter++;
        }
        else if (iCupsOfLemonadeInStock < iCupsToBuy)
        {
            cout << "You didnt have enough lemonade in stock so you only sold " << iCupsToBuy - iCupsOfLemonadeInStock << endl;
            fMoneyEarned += (iCupsOfLemonadeInStock * fCurrentLemonadePrice);
            fCurrentMoney += (iCupsOfLemonadeInStock * fCurrentLemonadePrice);
            iCupsOfLemonadeInStock = 0;
            iCustomerCounter++;
        }
    } while (continueLoop != true);
    fflush(stdin);
        GameMenuSelectionVerifier();
}
我认为

您可以使用一个名为"kbhit"的函数,它位于"conio.h"头文件中。您可以单击此按钮了解详细信息。你可以像这样修改它:

while(!kbhit());