【发布时间】:2016-03-14 03:25:44
【问题描述】:
有人可以向我解释为什么当用户在询问时为 int 菜单变量输入一个字符时,我的代码不会导致无限循环或崩溃吗?我已经对其进行了测试,它确实可以正常工作,但会认为它会崩溃……非常感谢!
int menu;
int drawCheck = 0;
cout << "Press 1 to play a friend\n";
cout << "Press 0 if for some reason you opened this and now dont want to play...\n";
cin >> menu;
while (menu!= 1) //User enters a number that isnt 1
{
if(menu ==0)
{
exit(EXIT_SUCCESS); //When user enters 0 the program will exit
}
cout << "Please enter either 1 to play a friend or 0 to exit: "; //Will ask untill player enters either 1 or 0
cin >> menu;
}
【问题讨论】:
-
在控制台中输入字符时是否尝试打印菜单的值?
-
从流中读取时,如果发生错误,则设置错误标志。在清除该标志之前不会进行任何读取。我不知道为什么,但是当这个错误发生时,无论变量的值是什么,0 都被设置为整数变量。根据您的代码,它适用于退出。
-
更多,要解决这个问题[如果还没有解决]并继续你的代码,尝试将菜单设置为字符类型并将输入与“1”进行比较。
-
对不起,如果这真的很基本,因为我是 C++ 新手,但是我将如何制作它,以便一旦我将 menu 设置为 char 变量,我可以输入数字 1 并有一个 if(menu ==1){//code} 工作成功了吗?