gpt4 book ai didi

c++ - 为什么用户无法提供输入

转载 作者:行者123 更新时间:2023-12-01 14:47:10 24 4
gpt4 key购买 nike

这是我的代码。

#include <iostream>
#include <string>
using namespace std;

int main() {

cout << "Welcome to Starbucks! What would you like to order?" << endl;
cout
<< "Before you select your order, would you like to look at your wallet to see how much money you have on you right now? "
<< flush;

string input;
cin >> input;

if (input == "Yes" || input == "yes") {
cout << " " << endl;
cout << "OK. You have $18.90 in your wallet. Now showing menu. "
<< flush;
}
else {
cout << " " << endl;
cout << "OK. Now showing menu. " << endl;
}

cout << "\n\n\tDrinks:\n\nHot Coffees\nHot Teas\nHot Drinks\nFrappuccino Blended Beverages\nCold Coffees\n\n\tFood:\n\nHot Breakfast"
"\nBakery\nLunch\nSnacks & Sweets\nYogurt & Custard\n\n\tMerchandise:\n\nDrinkware" << endl;

string option;

cout << "Select an option from one of these sections. Type your selection here: " << flush;
getline(cin, option);

if (option == "Hot Coffees" || option == "hot coffees" || option == "Hot coffees" || option == "hot Coffees") {

cout << "Welcome to the Hot Coffees section. Here is a list of all the hot coffees we sell:\n\nAmericanos:\n\nCaffè Americano\nStarkbucks Blonde Caffè Americano\n" << endl;
}



return 0;
}
最后,当我决定使用 getline 函数时(我想获取用户的输入以在 if 语句中使用),由于未知原因,我无法在控制台中输入内容,因此无法获取用户的输入。我已经尝试过 cin.ignore(); ,虽然这让我可以在控制台中输入,但在我输入“热咖啡”这个词后,它并没有打印出“欢迎来到热咖啡部分。”,即使我编写了 if 语句来打印它 if(选项==“热咖啡”)。如果你能解决这个问题,谢谢!如果你不能,我当然很高兴你至少尝试过,我会同样感激。

最佳答案

您的输入缓冲区中可能仍然有一个\n,因此当您到达 getline() 时,它会将其作为分隔符读取,并将其作为输入返回给您。我认为 std::flush 可能会做一些与您认为不同的事情。这是一个有用的阅读:https://www.cplusplus.com/reference/ostream/flush-free/
这是一行代码,在 C++ 中处理用户在控制台上的输入时很有用,它获取输入缓冲区中的每个字符,直到找到\n。

while (cin.get() != '\n');
祝你好运!

关于c++ - 为什么用户无法提供输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63257914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com