c++ - 如何检查用户输入是 1 还是 2
问题描述
我试图让用户输入一个代表难度的数字,但是当我使用该if
语句检查难度是否为 1 时,if
尽管我输入了1
.
与问题的答案相同。
例如,当我运行代码并要求我输入难度并且我输入 2 或 1000 时,它仍然会继续执行代码。you got it correct
即使我为第一个错误的问题输入 1945,它也会显示相同的答案。
任何帮助是极大的赞赏!
代码:
int difficulty;
cout << "Please choose a difficulty: 1 for easy 2 for medium 3 for hard: ";
cin >> difficulty;
if (difficulty = '1')
{
ifstream file_("questions.txt");
if (file_.is_open())
{
std::getline(file_, ques1);
cout << ques1 << std::endl;
int answr1;
cout << "Enter 1 for: 1945, Enter 2 for: 1914 \n";
cin >> answr1;
if (answr1 = '1914')
{
cout << "Well done you got it correct! \n";
}
else {
cout << "Incorrect answer was 1914! \n";
}
std::getline(file_, ques2);
cout << ques2 << std::endl;
int answr2;
cout << "Enter 1 for: 1937, Enter 2 for: 1939 \n";
cin >> answr2;
if (answr2 = '1939')
{
cout << "Well done you got it correct! \n";
}
else {
cout << "The answer was 1939 \n";
}
std::getline(file_, ques3);
cout << ques3 << std::endl;
int answr3;
cout << "Enter 1 for: George Bush, Enter 2 for: George Washington \n";
cin >> answr3;
if (answr3 = '2')
{
cout << "Well done you got it correct! \n";
}
else {
cout << "It was George Washington \n";
}
std::getline(file_, ques4);
cout << ques4 << std::endl;
int answr4;
cout << "Enter 1 for: 14, Enter 2 for: 11 \n";
cin >> answr4;
if (answr3 = '11')
{
cout << "Well done you got it correct! \n";
}
else {
cout << "It was 11 \n";
}
std::getline(file_, ques5);
cout << ques5 << std::endl;
int answr5;
cout << "Enter 1 for: She was born with 6 figners , Enter 2 for: 6 toes \n";
cin >> answr5;
if (answr3 =' 2')
{
cout << "Well done you got it correct! \n";
}
else {
cout << "It was 6 Toes \n";
}
file_.close();
}
else {
cout << "File is not open\n";
}
}
解决方案
您的 if 语句在这里存在逻辑缺陷。您希望用户在两个选项之间进行选择,因此如果他们选择 1 或 2 以外的任何选项,请给他们一个提示并期待这两个答案之一。请参见下面的示例:
if (answr1 == "1914")
{
cout << "Well done you got it correct! \n";
}
else if(answr1 == '1945') {
cout << "Incorrect answer was 1914! \n";
}
else {
cout << "Incorrect Input!Plese input 1 or 2 \n";
}
PS:在 C++=
中,运算符用于赋值。用于==
比较
推荐阅读
- c# - 如何正确调用下面的端点?
- git - 在 Git 和 Github 上克隆更新
- javascript - 散列不同的 JSON 对象数组会为每个人获得相同的散列值
- go - 如何使用 golang 中的函数将 interface{} 值转换为静态类型的值?
- swift - 将 GraphicCircular Apple Watch 复杂功能添加到现有 Xcode 项目
- ruby-on-rails - Ruby如何在包含的模块之外使用变量
- java - 如何在 Firebase 数据库中对特定日期查询的排行榜数据进行排序?
- git - 将远程分支推送到 git 中的另一个远程仓库的用例
- javascript - 如何实现一个函数,当传入一个强字符串时将返回,否则返回 false?
- sql - SQL 语句返回 null 时 ID<>SQL 语句不起作用