【发布时间】:2018-12-06 01:52:37
【问题描述】:
我创建的程序有问题。 它应该接受用户的输入并检查它是“P”还是“M”。 问题是我只希望它在您输入“P”或“M”时工作,因为现在它接受您输入的任何内容为“M”,只要它以“M”开头(例如,如果您输入“莫尔斯”它会接受它作为“M”)。 我不是程序员,对 c++ 了解不多,我只是为了好玩。举例说明:
int main(){
std::cout << "Enter 'M' or 'P'\n";
char slction;
Inputrror:
std::cin >> slction;
switch (slction) {
case 'M':
goto Morse;
break;
case 'm':
goto Morse;
break;
case 'P':
goto Text;
break;
case 'p':
goto Text;
break;
default:
std::cout << "Please only enter 'M' or 'P'\n;
goto Inputrror;
break;
}
Morse:
std::cout << "Morse\n;"
return 1;
Text:
std::cout << "Text\n;"
return 1;
}
编辑:我尝试将输入读取为建议的字符串,现在它可以正常工作。正确版本:
int main() {
std::cout << "Enter 'M' or 'P'\n";
std::string slction;
Inputrror:
std::cin >> slction;
if (slction == "M" || slction == 'm') {
goto Morse;
}
else if (slction == "P" || slction == 'p') {
goto Text;
}
else {
std::cout << "Please only enter 'P' or 'M'\n";
goto Inputrror;
}
Morse:
std::cout << "Morse\n";
return 1;
Text:
std::cout << "Text\n";
return 1;
}
【问题讨论】:
-
欢迎来到 Stack Overflow!不幸的是,您的问题仅包含要求:它没有显示您自己为解决此问题所做的任何努力。请edit您的问题显示your attempt far,您将更有可能收到有助于您进步的答案。以minimal reproducible example 向我们展示您的工作、您期望的结果和您得到的结果,我们将帮助您解决问题。重新阅读How to Ask可能会有所帮助。
-
请出示您的代码,我们不知道您的意思,例如“...它重定向到第一个开关盒”。没有代码
-
请注意,仍然使用更正的版本,程序将接受像
M garbage这样的输入。如果您不希望出现这种情况,您可以考虑改用std::getline。