将switch语句中的信息存储到变量中?

时间:2013-09-03 02:46:04

标签: c++ reference switch-statement

我正在尝试制作角色定制程序。我想将从switch语句收到的信息存储到storePlayerRace变量中。我试图将该信息作为参考。我不知道如果这是正确的做法。这个问题真的很困扰我,因为它应该这么简单。每次运行此命令时,cout语句都不会向屏幕输出任何文本。我希望选择的比赛输出到屏幕。任何相关的帮助非常感谢! **我试图打破switch语句的范围。

#include <iostream>
    #include <Windows.h>
    #include <string>
    using namespace std;

    string characterName(string x){
        return x;
    }
    string characterRace(string &x){
        return x;
    }


    int main()
    {

        string name;
        string storePlayerName;
        string storePlayerRace;

        int race;
        cout << "<------Character Creation------->" << endl;
        cout << "\n\n Enter Character name " << endl;
        getline(cin,name);
        storePlayerName = characterName(name);

        cout << "\n Select Race " << endl;
        cout << "1: White";
        cout << "\n2: Black\n";
        cin >> race;

        switch(race){
            case 1:
                {               
                    string white;
                    storePlayerRace = characterRace(white);

                }break;
            case 2: 
                {
                    string black;
                    storePlayerRace = characterRace(black);
                }break;
        }
        cout << storePlayerRace << endl;
        cout << "End of Program" << endl;
        getchar();
        system("PAUSE");
    }

2 个答案:

答案 0 :(得分:4)

string white;
string black;

这两行只定义空字符串,其中没有文字。我认为你的意思是:

string white = "white";
string black = "black";

此外,我不确定你的characterRace()函数究竟要完成什么,目前它是无操作的,因此可以简化为:

case 1:
    storePlayerRace = "white";
    break;
case 2:
    storePlayerRace = "black";
    break;

答案 1 :(得分:0)

您应该在switch语句中初始化string whitestring black变量。

EG:

string white = "white";
string black = "black";