我正在学习C++入门课程,并且在Win7上使用VStudio 2013。我试图避免菜单输入错误的数据,尽管在其他所有菜单中都有效,但在这个菜单中不起作用。
cout << "Please choose your second number" << endl;
cin >> move2;
if (move2 < 1 || move2 > size)
{
cout << "That's not a valid move" << endl;
Sleep(2000);
cin.sync();
cin.clear();
}
唯一的区别是在移动条件中使用的变量(size)是一个变量而不是数字。 当我输入一个字符时,它会返回到询问另一个输入的问题,但如果我输入一个单词,程序就会崩溃!
我尝试使用cin.ignore(numeric_limits<streamsize>::max(), '\n');
,但编译器突出显示max()
并显示“expecting identifier”。
这可能对所有优秀的程序员来说很容易,但我不知道如何修复它。 有人能帮帮我吗?