C++ 游戏菜单不工作C++;
所以我有一个游戏,当我运行它时,首先调用函数C++ 游戏菜单不工作C++;,c++,ubuntu,cout,C++,Ubuntu,Cout,所以我有一个游戏,当我运行它时,首先调用函数menu()。由于某些原因,它不会接受输入并正确地转到下一步。有什么想法吗 void menu() { char x = -1; while (x != '3') { cout << "\n"; cout << "\n"; cout << "\n---------------------"; cout << "\n M
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"
}
}
}
void菜单(){
字符x=-1;
而(x!=“3”){
cout如果您使用的是Ubuntu/Debian(或任何类型的Linux)系统(“CLS”)
可能无法工作。CLS
是清除终端的DOS命令
如果系统使用sh
等,您可以使用clear
达到相同的效果。但您可能应该避免system
所有这些,并寻找更可靠的替代方案
我在Windows上使用bash,这种配置的结果更加有趣,因为system
在Windows上使用cmd.exe
,因此CLS
可以工作,但不能clear
如果执行以下程序,则会发出嘶嘶声:
#include <stdlib.h>
int main(int argc, char *argv[])
{
system("clear");
}
#包括
int main(int argc,char*argv[])
{
系统(“清除”);
}
正如您所看到的,当您运行系统时,会发生什么事情
完全依赖于底层shell。底层shell可能不是您执行程序的shell。这可能非常可怕
这个问题有一些很好的相关答案:
如果您使用的是Ubuntu/Debian(或任何类型的Linux)系统(“CLS”)
可能无法工作。CLS
是清除终端的DOS命令
如果系统使用sh
等,您可以使用clear
达到相同的效果。但您可能应该避免system
所有这些,并寻找更可靠的替代方案
我在Windows上使用bash,这种配置的结果更加有趣,因为system
在Windows上使用cmd.exe
,因此CLS
可以工作,但不能clear
如果执行以下程序,则会发出嘶嘶声:
#include <stdlib.h>
int main(int argc, char *argv[])
{
system("clear");
}
#包括
int main(int argc,char*argv[])
{
系统(“清除”);
}
正如您所看到的,当您运行系统时,会发生什么事情
完全依赖于底层shell。底层shell可能不是您执行程序的shell。这可能非常可怕
这个问题有一些很好的相关答案:
好的,那么这里到底是什么问题。菜单从未显示,或者是当菜单确实显示并且您输入了一个选项时,它没有做正确的事情?菜单显示了,但它从来没有认为输入是正确的。它只是返回“CLS:INVALID”嗯,首先看看这个,知道为什么永远不要使用system()。或者至少是为什么在执行此操作时要非常小心:还可以查看此选项:从错误消息中可以看出,系统()call就是问题所在。您是否使用调试器进行了调试。要查看选择了哪种情况?当开关总是跳到默认分支时,x的值是多少?这可能会有一些提示。例如,如果您在数字键盘上键入数字,根据num lock的状态,您可能首先会得到一个特殊字符的指示器然后你将得到真实的字符。好吧,那么这里到底是什么问题。菜单从未显示,或者是当菜单确实显示并且你输入了一个选择时,它没有做正确的事情?菜单显示了,但它从未将输入视为正确。它只是返回“CLS:无效”嗯,首先看看这个,了解为什么永远不要使用system()。或者至少知道为什么在使用system()时要非常小心:也看看这个,寻找替代方法:从错误消息中可以看出system()是call就是问题所在。您是否使用调试器进行了调试。要查看选择了哪种情况?当开关总是跳到默认分支时,x的值是多少?这可能会有一些提示。例如,如果您在数字键盘上键入数字,根据num lock的状态,您可能首先会得到一个特殊字符的指示器不完全是,我放了一个新的编辑来描述我的新问题不完全是,我放了一个新的编辑来描述我的新问题