use*_*704 2 c++ enums cin operands
这是我为练习做的代码.当我编译它时,它不允许cin >> choice被编译.它说" 错误2错误C2088:'>>':类非法 "和" 错误1错误C2371:'选择':重新定义;不同的基本类型 "我能就如何解决这个问题得到一些建议吗?非常感激!
#include <iostream>
using namespace std;
int main()
{
cout << "Difficulty levels\n\n";
cout << "Easy - 0\n";
cout << "Normal - 1\n";
cout << "Hard - 2\n";
enum options { Easy, Normal, Hard, Undecided };
options choice = Undecided;
cout << "Your choice: ";
int choice;
cin >> choice;
switch (choice)
{
case 0:
cout << "You picked Easy.\n";
break;
case 1:
cout << "You picked Normal. \n";
break;
case 2:
cout << "You picked Hard. \n";
break;
default:
cout << "You made an illegal choice.\n";
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它说"错误2错误C2088:'>>':类非法"和"错误1错误C2371:'选择':重新定义;不同的基本类型"我能就如何解决这个问题得到一些建议吗?
当然,让我们看看你写的是什么:
...
options choice = Undecided;
// ^^^^^^^^^^^
cout << "Your choice: ";
int choice;
// ^^^^^^^^
cin >> choice;
..
Run Code Online (Sandbox Code Playgroud)
这是个错误.首先,您应该只定义一次相同的变量.其次,枚举器没有运算符>>重载,所以你不能使用前一个声明.
解决方案是删除前者,所以你将整体编写(修复丑陋的缩进):
#include <iostream>
using namespace std;
int main()
{
enum options { Easy, Normal, Hard, Undecided };
cout << "Difficulty levels\n\n";
cout << "Easy - " << Easy << "\n";
cout << "Normal - " << Normal << "\n";
cout << "Hard - " << Hard << "\n";
cout << "Your choice: ";
int choice;
cin >> choice;
switch (choice)
{
case Easy:
cout << "You picked Easy.\n";
break;
case Normal:
cout << "You picked Normal.\n";
break;
case Hard:
cout << "You picked Hard.\n";
break;
default:
cout << "You made an illegal choice.\n";
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
g++ main.cpp && ./a.out
Difficulty levels
Easy - 0
Normal - 1
Hard - 2
Your choice: 0
You picked Easy.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
585 次 |
最近记录: |