Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在一个函数中包含所有选项?_C++ - Fatal编程技术网

C++ 如何在一个函数中包含所有选项?

C++ 如何在一个函数中包含所有选项?,c++,C++,所以我正在做一个文本冒险游戏,我希望能够有一个包含所有输入的函数。因此,我不必每次都做if语句来检查每个方向,我只需要把所有这些都放在一个函数中。我怎么做这个 string input; while (input != "n", "s", "e", "w") { getline(cin, input); if (input == "n") { dTable(); }

所以我正在做一个文本冒险游戏,我希望能够有一个包含所有输入的函数。因此,我不必每次都做if语句来检查每个方向,我只需要把所有这些都放在一个函数中。我怎么做这个

    string input;
    while (input != "n", "s", "e", "w")
    { 
        getline(cin, input);
        if (input == "n")
        {
            dTable();
        }
        if (input == "e")
        {
            cout << "You sit on the sofa. Congratulations" << endl;
        }
        if (input == "w")
        {
            cout << "You just ran into a wall" << endl;
        }
        if (input == "s")
        {
            outsideHouse();
        }
        if (input == "stats")
        {
            stats();
        }
        if (input == "help")
        {
            help();
        }
        else
        {
            cout << "Sorry I am not Siri I don't understand" << endl;
            getline(cin, input);
        }
        break;
    }

    return 0;
}
字符串输入;
while(输入!=“n”、“s”、“e”、“w”)
{ 
getline(cin,输入);
如果(输入=“n”)
{
dTable();
}
如果(输入=“e”)
{

你能在这里看到使用函数的不同方法吗, 这就是我解决这个问题的方法。 您可以专注于在main()部分添加新问题,而无需编写 所有的if请求都一遍又一遍

#包括
#包括
使用名称空间std;
无效帮助();
void stats();
字符串检查(字符串输入、字符串n、字符串s、字符串w、字符串e)
{
字符串结果;
如果(输入=“n”){
结果=n;}
否则如果(输入=“s”){
结果=s;}
否则如果(输入=“w”){
结果=w;}
否则如果(输入=“e”){
结果=e;}
else if(输入=“帮助”){

问题是什么?你想把这个循环改成函数还是什么?排序相关:我发现
std::map
在这里很方便。如果你把
字符串
映射到一个对该字符串执行正确行为的函数,你可以
getline(cin,input);menumap[input]()强烈建议使用一些额外的包装来进行验证。
while(输入!=“n”、“s”、“e”、“w”)
不会像您认为的那样。您应该改用
while(getline(cin,input))