我的代码: http: //pastebin.com/qjFd6KXb
我有一个班级作业,要求我创建一个程序,该程序将输出一个简单的乘法问题,用户必须在三次或更少的时间内回答该问题。要求之一是程序检查用户猜测的数字是否有效。我的教授希望我们在代码中使用这种方法:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
char c;
bool valid = false;
int i;
while (!valid)
{
cout << "Enter an int " << endl;
cin >> i;
valid = true;
if (cin.peek() != '\n' || cin.fail()) // checks if the input data was correct or not
{
valid = false;
cin.clear(); // clears the error flags
cin.ignore(100, '\n'); // ignores up to 100 characters in the cin stream
}
}
}
我的问题出现在我的代码的大约第 57 行。如果没有额外的 while 循环和 if 语句来检查正确性,它运行良好。但是,无论我尝试什么,当我实现该部分时,它要么变成无限循环,要么不可能获胜。如果有人能让我知道这有什么问题,我将不胜感激,因为我一生都无法弄清楚这一点。