我正在制作基于文本的冒险游戏。基于文本的游戏中的C++输入
在介绍中,我让游戏要求玩家的名字,他们必须输入他们的名字,然后它会在输出中显示他们的名字。
cout << "U.S Soldier: Who's your name, Soldier?" << endl;
_getch();
cout << "Type Your name: ";
cin.getline(name, 50);
cout << "U.S Soldier: I'm DIAZ, now let's go, " << name << "!!" << endl;
然后它会转到另一个段(我使用void命令)。
void prologue()
{
system("cls");
cout << "----------------------- PROLOGUE -------------------------" << endl;
cout << "\n";
cout << "\n";
cout << "Diaz: come on, " << name << ", there's no time for rest!!" << endl;
}
但在该段上该程序似乎忘记了来自上一段的输入(玩家名称)。
它只是显示为“1”,而不是
前的“名字”,我们输入我怎样才能使程序保持对整个游戏玩家的名字呢?
这是所有代码:
// getting player's name
void name()
{
system("cls");
char name[50];
cout << "U.S Soldier: Hey, Wake Up!!" << endl;
_getch();
cout << "You: (regain conciousness)" << endl;
_getch();
cout << "U.S Soldier: Who's your name, Soldier?" << endl;
_getch();
cout << "Type Your name: ";
cin.getline(name, 50);
system("cls");
cout << "U.S Soldier: Hey, Wake Up!!" << endl;
cout << "You: (regain conciousness)" << endl;
cout << "U.S Soldier: Who's your name, Soldier?" << endl;
cout << "U.S Soldier: I'm DIAZ, now let's go, " << name << "!!" << endl;
_getch();
prologue();
}
// Intro (Prologue)
void prologue()
{
system("cls");
cout << "----------------------- PROLOGUE -------------------------" << endl;
cout << "\n";
cout << "\n";
cout << "Diaz: come on, " << name << ", there's no time for rest!!" << endl;
}
'name'是一个局部变量,它只在'name()'函数中已知。您应该在全局范围内声明该数组。 – mrt
这是C++,请*不要*使用char数组作为字符串。使用'std :: string'或其他字符串类。 – nvoigt
你的代码似乎很多次重复'cout'和'_getch()'序列。你应该为它做一个功能,它有助于代码维护。无论何时您想要更改(例如添加格式),您都可以在一个位置完成更改。 – Melebius