c++ - 我用这个字符串得到了一个无限的while循环
问题描述
所以我在这里得到了这部分代码:
string stringparam;
string stringparam1;
double d;
unsigned x;
cout << "Welcome" << endl;
cout << "Choose one (ASUS, MSI, Gigabyte, ASrock)" << endl;
cin >> stringparam;
while (stringparam != "ASUS" || "MSI" || "Gigabyte" || "ASrock")
{
cout << "you gave bad input \n" << endl;
cout << "Choose one (ASUS, MSI, Gigabyte, ASrock)" << endl;
cin >> stringparam;
}
问题是即使我给他一个像“华硕”这样的正确答案,它仍然会给我错误信息:“你输入错误”我该怎么办?
解决方案
只是盲目地猜测语法是行不通的。我建议stringparam != "ASUS" || "MSI" || "Gigabyte" || "ASrock"
通过阅读运算符来了解真正的含义。
你可以做这样的事情来以一种非常简洁的方式实现你想要的。它需要 C++11 或更高版本。
std::set<std::string> ss = {"ASUS","MSI" , "Gigabyte","ASrock" };
while(ss.find(stringparam) == ss.end()) {
推荐阅读
- python-3.x - Get index of a list with tuples in which the first element of the tuple matches pattern
- javascript - 在页面上选择新创建的元素 - puppeteer
- r - 在 R 中,打印数据框中人口密度最高的国家
- pandas - 如何创建一个 datframe 列来计算另一个列中每个值的出现次数?
- django - 姜戈。将新属性 ForeignKey 添加到用户模型现有模型:OperationalError
- php - Laravel 包路由找不到控制器类
- asp.net-core-mvc - MVC Core Google 外部提供者登录任务超时
- amazon-web-services - 使用 AWS Java sdk 选择配置文件
- karate - 如何在空手道 api 的单个 set 语句中设置多个 json 属性?
- jquery - Bootstrap(和 jquery)、webpack、rails - 没有完全集成