如何清除cin缓冲?
再请教一个问题,如程序:#include <iostream>
using namespace std;
1。int main()
2。{
3。 int a = 0;
4。 cin >> a;
5。 if ((a > 10) || (a < 1))
6。 {
7。 cout << "
8。 cin >> a;
9。 }
10。 return 1;
11。}
在这个程序中,如果输入的是字符或字符串,程序将连续地输出:
Invalid number!而进入死循环,请问有什么解决方法吗?
经调试,发现如果输入的是字符或字符串, a的值仍是上一次的数值结果,cin缓冲始终不为空,于是出现死循环,请问如何清除cin缓冲?
在VC.net中可以用 cin.rdbuf->pubsetbuf();来清除,而VC6.0没有这个函数。。。。
:)