以前我是C程序员(想知道更多关于系统编程的知识,但不想进入汇编,所以我选择C),但后来在我的大学I必须采取C++,我实际上很难使用cin
和cout
对象,因为它与我信任的printf()
,scanf()
,getchar()
宏相比有一些变化。这是代码。使用cin对象进行输入验证并清除缓冲区(C++)
守则
int main(void)
{
using namespace std;
cout << "What is the number?\n\n";
cout << "#Number :";
cin >> num;
while(cin.fail())
{
cin.clear();
cin.ignore(1000 , '\n');
cout << "Please enter a number\n\n";
cout << "#Number :";
cin >> num;
}
return 0;
}
问题
1)我想这个代码,请从用户(小于号和大于或等于0),当用户输入一个字符或字符串时,我希望它提醒用户,清除输入缓冲区并重新提示用户输入新的值e直到它是一个数字。
2.)所以我只是用google搜索并找到一个页面传播方法,所以我只是按照方式,但它失败了。我不知道为什么一旦我运行这个代码,键入一个字符它将导致无限循环的输出Please enter a number
。在这段代码中我犯的任何错误?
谢谢你花时间阅读我的问题
P/S:我使用的代码块与MinGW的编译器。
好的,谢谢,无论如何,在原始的源代码,我确实声明:)只是在这里我忘了添加行 – caramel1995