我是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)
string D1(string Original)应该string D1(string& Original)(即:参考传递)
和
string D1(Decision1);在main应
D1(Decision1); 因为
string D1(Decision1);实际上声明了一个新的字符串变量,称为D1(与函数同名)并使用值初始化它Decision1