【发布时间】:2014-09-22 21:56:38
【问题描述】:
这是一个随机猜谜游戏。游戏的秘密数字是由用户输入的从最小值到最大值。猜测者要求猜测秘密数字,最后应该询问他们是否想再玩一次。如果猜测者太高或太低,还必须有多种打印输出选项。我是编程新手,这让我很困惑。任何帮助,将不胜感激。
现在在 do while 循环中键入字母后,我无法让用户再次输入 cin。因此,任何关于最佳途径的建议都将不胜感激。
cout<<"\nEnter ur amount to play game: ";
cin>> amount;
do{
cout<<"\n\n"<< name<< ", What is ur betting amount? ";
cin>> bet_amount;
if(bet_amount > amount)
cout << "Your betting amount is more than your current balance!\n";
else if(!(cin>> bet_amount)){
cin.clear();
cin.ignore();
}
}while(bet_amount > amount || !(cin>> bet_amount));
while(1){
// Read in guess
cout<< "\n\nEnter a guess to bet: ";
cin >> guess;
...
【问题讨论】:
-
你为什么使用 cin>> bet_amount) in while(bet_amount > amount && !(cin>> bet_amount));
-
@Sorcler 嗨,确保用户输入的是数字,而不是字母
-
你能指定 bet_amount > amount && !(cin>> bet_amount) 如何检查输入的值是否为数字??
-
@Sorcler 这是示例输出:i59.tinypic.com/jb35o9.png
-
流上的失败位是粘性的。您需要使用
ignore成员函数丢弃不是有效数字的输入,然后使用clear成员函数重置失败位。
标签: c++