首页 > 解决方案 > 如何在此“if 块”中定义其他无效输入的值,以便在 C++ 中将字符串转换为对象?

问题描述

我正在尝试转换stringobject以下代码。如何设置任何其他不相关的无效输入的值?

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;
    }
}

标签: c++stringobjectif-statement

解决方案


检查以下是否适合您的目的:

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;}
.
.
.

推荐阅读