c++ - 如何在此“if 块”中定义其他无效输入的值,以便在 C++ 中将字符串转换为对象?
问题描述
我正在尝试转换string
为object
以下代码。如何设置任何其他不相关的无效输入的值?
object stringToObject(string input){
if (input == "rock")
return object::rock;
else if (input == "paper")
return object::paper;
else if (input == "scisors")
return object::scissors;
}
更新:如果有帮助,整个代码是:
#include <iostream>
#include <string>
using std::string;
using std::cin;
using std::cout;
enum object { rock, paper, scissors };
object stringToObject(string input){
if (input == "rock")
return object::rock;
else if (input == "paper")
return object::paper;
else if (input == "scisor")
return object::scissors;
else if (input !== "mock")
return cout>>"Invalid input";
}
int main(int argc, char **argv){
string player1Input, player2Input;
cout << "Enter input";
cin >> player1Input >> player2Input;
object player1Choice = stringToObject(player1Input);
object player2Choice = stringToObject(player2Input);
switch (player1Choice) {
case object::rock:
cout << "blah";
break;
case object::paper:
cout << "blah blah";
break;
case object::scissors:
cout << "blah blah blah";
break;
}
switch (player2Choice) {
case object::rock:
cout << "blah";
break;
case object::paper:
cout << "blah blah";
break;
case object::scissors:
cout << "blah blah blah";
break;
}
}
解决方案
检查以下是否适合您的目的:
enum object {rock, paper, scissors, invalid};
object stringToObject(string input){
if (input == "rock") return object::rock;
else if (input == "paper") return object::paper;
else if (input == "scissors") return object::scissors;
return object::invalid;}
.
.
.
switch(player1Choice){
case object::rock: cout << ""; break;
case object::paper: cout << ""; break;
case object::scissors: cout << ""; break;
default: cout << "Invalid choice"; break;}
.
.
.
推荐阅读
- python - 没有参数的Python setter?
- c++ - Qt Signals/Slots 的奇怪行为(涉及动态加载的 DLL)
- javascript - 无法在 JS 中设置 null 的属性“innerHTML”
- python - 需要在分组后的列中获取排名值
- wpf - 如何隐藏绑定路径 - Multibinding wpf
- php - 如何使用 php 重命名()和复制()文件到另一个目录
- arguments - Homebrew“-vd”参数是什么意思?
- r - ggplot2:为彩色条形图和图例添加不同的纹理
- php - 如何诊断 NGINX/PHP 缓慢
- r - 如何在ggplot2 R中向轴添加潜文本