C++ 如何定义此“中其他无效输入的值”;“如果块”;用于将字符串转换为c++;?

C++ 如何定义此“中其他无效输入的值”;“如果块”;用于将字符串转换为c++;?,c++,string,object,if-statement,C++,String,Object,If Statement,我试图在下面的代码段中将字符串转换为对象。如何设置任何其他无关无效输入的值 object stringToObject(string input){ if (input == "rock") return object::rock; else if (input == "paper") return object::paper; else if (input == "scisors") return object::scis

我试图在下面的代码段中将
字符串
转换为
对象
。如何设置任何其他无关无效输入的值

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;
    }
}
#包括
#包括
使用std::string;
使用std::cin;
使用std::cout;
枚举对象{石头、布、剪刀};
对象stringToObject(字符串输入){
如果(输入=“岩石”)
返回对象::岩石;
否则如果(输入=“纸张”)
返回对象::纸张;
否则如果(输入=“scisor”)
返回对象::剪刀;
否则如果(输入!=“模拟”)
返回cout>>“无效输入”;
}
int main(int argc,字符**argv){
弦乐演奏者1输入,演奏者2输入;
cout>Player1输入>>Player2输入;
对象播放器1选择=stringToObject(播放器1输入);
对象播放器2选择=stringToObject(播放器2输入);
开关(播放器1选择){
案例对象::rock:

检查以下各项是否符合您的目的:

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;}
.
.
.
enum对象{石头、布、剪刀、无效};
对象stringToObject(字符串输入){
if(input==“rock”)返回对象::rock;
else if(input==“paper”)返回对象::paper;
else if(输入==“剪刀”)返回对象::剪刀;
返回对象::无效;}
.
.
.
开关(播放器1选择){

案例对象::rock:你是否必须检查enum的基本知识?你是否有一个错误值
对象
?你希望错误的输入是一个错误吗?这个问题的真正原因是什么?@StoryTeller-Unslander Monica是的,我希望错误的输入是一个错误。要么将错误值添加到
enum类对象
,要么
抛出一个错误异常在<代码>其他< /代码>分支,或返回<代码> STD::配对< /C> >其中第二个指示第一个是有效的。C++中处理错误的惯用方式是:错误处理模型,它不会强迫您修改数据流。