我知道人们会立即看到标题并只是说:“使用字符串”或“字符只能是长度为1”,但这些都有问题。
对于第一种情况,由于稍后在使用switch语句的代码中,我的变量必须保持为char,这样它不会导致任何错误;对于第二种情况,在测试过程中我发现,即使我输入了多长度的输入,它也只是将每个字符分别运行到switch语句中,这是我不希望发生的。欢迎任何帮助,哦,下面是代码:
char input;
do {
cout << "Please enter a number from 1 to 4.";
cin >> input;
if (sizeof(input)!=1) {
cout << "Please just enter a number";
}
else {
switch (input) {
case '1': {
cout << "One";
break;
}
case '2': {
cout << "Two";
break;
}
case '3': {
cout << "Three";
break;
}
case '4': {
cout << "Four";
break;
}
default:
cout << "Enter only a number from 1-4!";
}
}
} while ((input) != '4');
注意,我至少尝试过使用strlen和size函数,但没有效果。
那么,使用
std::string input;
std::cin >> input;
if (input.size() != 1) {
std::cout << "Wrong input";
} else {
switch (input.front()) {
case '1':
// ...
}
}