gpt4 book ai didi

c++ - 游戏菜单不工作 C++

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:27 27 4
gpt4 key购买 nike

所以我有一个游戏,当我运行它时,首先调用函数 menu()。由于某种原因,它不会接受输入并正确地进入下一步。有什么想法吗?

void menu() {
char x = -1;
while (x != '3') {
cout << "\n";
cout << "\n";
cout << "\n---------------------";
cout << "\n Main Menu ";
cout << "\n 1 - Start a New Game";
cout << "\n 2 - Instructions ";
cout << "\n 3 - Exit Game ";
cout << "\n---------------------";
cout << "\n";
cout << "\n";
cout << "\n Enter Selection:";
cin >> x;
switch (x) {
case '1':
for(i=0; i<15;i++){
cout<<"\n"
}
playgame();
break;
case '2':
for(i=0; i<15;i++){
cout<<"\n"
}
instructions();
break;
case '3':
for(i=0; i<15;i++){
cout<<"\n"
}
cout << "Good bye\n" << endl;
break;
default:
cout << "Invalid Character\n";
cout << "\n";
cout << "Press Space to continue\n";
}
for(i=0; i<15;i++){
cout<<"\n"
}
}
}

我对其进行了更改,因此它仅通过使用 for 循环和“\n”来清除屏幕。但现在由于某种原因它没有到达下一行。

编辑,现在我的 menu() 不工作了。它要求输入,然后点击 for 循环以清除,然后永远不会执行下一行。我是否错误地传递了输入?还是别的?

最佳答案

如果您使用的是 Ubuntu/Debian(或任何类型的 Linux),system("CLS") 可能无法工作。 CLS 是清除终端的 DOS 命令。

如果系统使用sh 等,您可以使用clear 达到同样的效果。但是您可能应该完全避免 system 并寻找更强大的替代方案。


我在 Windows 上使用 bash,结果在这个配置上更加搞笑,因为 system 在 Windows 上使用 cmd.exe,因此 CLS 有效,但不是清晰

如果执行以下程序,它会发出嘶嘶声:

#include <stdlib.h>

int main(int argc, char *argv[])
{
system("clear");
}

如您所见,当您运行 system 时究竟发生了什么完全取决于底层 shell。并且底层 shell 可能不是您从中执行程序的 shell。这可能非常可怕。


这个问题有一些不错的相关答案:

How do you clear console screen in C?

关于c++ - 游戏菜单不工作 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16328860/

27 4 0