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循环开始时重新启动你。我不知道为什么它会跳过输入然后关闭程序。任何帮助表示赞赏。
答案 0 :(得分:1)
也许您需要在cin.ignore()
cin >> subsubchoice;
答案 1 :(得分:0)
你能解释一下输入的格式吗? cin读取所有输入,直到找到空白字符('\ n','\ t',''等)。您是否有可能在原始输入中插入空格,例如“2 1”?
答案 2 :(得分:0)
你在这里:
cout中有一个缺少的分号&lt;&lt; “你很快就会回到温暖的旅馆,放松一下,度过一个温暖的夜晚,睡个好觉。你的健康状况会恢复到100岁。\ n”;
删除最后一个案例2:或添加休息时间;之后(更好地删除它,它没用)。
虽然(!boolchoice)保证是假的,因为为了输入forst,boolchoice必须是非零的。如果你想要它迭代,尝试使用while(gold)或while(health)退出,当你没有黄金或健康...
我希望这会有所帮助......