如何在函数内使用cin?

0 c++ function

我是c ++的新手,我正在尝试制作一个简单的基于文本的游戏.下面的代码应该欢迎用户加入游戏并询问用户是否想要开始游戏.我没有得到任何构建错误,但是当我运行它时,它显示的是一个空白屏幕.我究竟做错了什么?

代码如下:

string D1(string Original)
{
    cin >> Original;
    return Original;
}

int main ()
{
    string Decision1;
    cout << "Welcome to [game name]" << endl;
    cout << "Would you like to start the game?" << endl;
    cout << "Yes/No" << endl;
    string D1(Decision1);
    system("cls");
    if (Decision1 == "Yes")
    {
        cout << "this happens" << endl;
    }
    else if (Decision1 == "No")
    {
        cout << "that happens" << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 7

你必须调用D1,而不是创建一个名为的新变量D1:

std::string D1()
{
    std::string Original;
    std::cin >> Original;
    return Original;
}

int main ()
{
    std::cout << "Welcome to [game name]" << std::endl;
    std::cout << "Would you like to start the game?" << std::endl;
    std::cout << "Yes/No" << std::endl;
    auto Decision1 = D1();
    system("cls");
    if (Decision1 == "Yes")
    {
        std::cout << "this happens" << std::endl;
    }
    else if (Decision1 == "No")
    {
        std::cout << "that happens" << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)


Fer*_*eak 6

string D1(string Original)应该string D1(string& Original)(即:参考传递)

string D1(Decision1);main

D1(Decision1); 因为

string D1(Decision1);实际上声明了一个新的字符串变量,称为D1(与函数同名)并使用值初始化它Decision1