cin >> subchoice;
switch(subchoice)
{
case 1:
gold = gold - 5;
cout << "Now you only have " << gold << " gold.\n";
cout << "blah blah";
health = 100;
break;
case 2:
cout << "blah blah"
<< "1 - Head Back in and Buy a Bed\n"
<< "2 - Find a Clothier Shop\n"
<< "3 - Find a Blacksmith's\n";
cin >> subsubchoice;
switch(subsubchoice)
{
case 1:
gold = gold - 5;
cout << "Now you only have " << gold << " gold.\n";
cout << "blah blah"
health = 100;
break;
case 2:
menuchoice = subsubchoice;
break;
case 3:
menuchoice = subsubchoice;
break;
}
}
break;
case 2:
}
} while (!boolchoice);
嘿所以我在这里有这段代码 . 每当我运行它时,它总是会跳过sububchoice的cin输入 . 它应该做的是接受输入,或者让你进入旅馆或者将这个选择应用于menuchoice并在do-while循环开始时重新启动你 . 我不知道为什么它会跳过输入然后关闭程序 . 任何帮助表示赞赏 .
3 回答
也许你需要在
cin >> subsubchoice;
之前添加cin.ignore()
你能解释一下输入的格式吗? cin读取所有输入,直到找到空白字符('\ n','\ t',''等) . 您是否有可能在原始输入中插入空格,例如“2 1”?
这个给你:
cout中有一个缺少的分号<<“你很快就会回到温暖的旅馆,放松一个温暖的夜晚,睡个好觉 . 你的 Health 状况会恢复到100 . \ n”;
删除最后一个案例2:或添加休息时间;之后(更好地删除它,它是无用的) .
while(!boolchoice)保证为false,因为为了输入forst,boolchoice必须为非零 . 如果你想要它迭代,尝试使用while(gold)或while(health)退出当你没有黄金或 Health ...
我希望这有帮助...