我正在製作基於文本的冒險遊戲。基於文本的遊戲中的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