所以我有这个类的赋值,我需要使用 switch 语句并且 case 值必须是 2、4、6、8 和 10。问题是当我使用 10 作为 case 值然后执行 g++ 时表示案例标签值超过类型的最大值。我不确定我做错了什么。这是我的代码。如果我使用任何小于 10 的数字,它会完美地工作。
#include <iostream>
using namespace std;
int main()
{
char number;
cout << "Enter a number. ";
cin >> number;
switch(number)
{
case '2':
cout << "shoe\n";break;
case '4':
cout <<"door\n";break;
case '6':
cout <<"sticks\n";break;
case '8':
cout <<"straight\n";break;
case '10':
cout <<"big fat hen\n";break;
default:
cout << "Not much into kids' rhymes, ar you?\n" << endl;
}
}
最佳答案
'10'
不是一个字符,是两个字符,这是不允许的。如果你想存储数字,你不应该使用 '
字符:
case 8:
cout <<"straight\n";break;
case 10:
...
相反,您应该将输入读取为 int
类型。
关于C++ "Case label value exceed maximum value for type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19128589/