关于cin缓存的清空,网上有各种说法。最多的是使用
cin.sync();
但是,关于这个sync方法在不同的编译器中有不同的实现。VC中确实可以清空cin的缓存,但是在GNU中,不行。因此使用sync方法是没有通用性的。
又有说法是使用
cin.seekg(0, ios_base::end);
但是依旧无法正常工作。以下是一个测试代码:
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a;
cin.seekg(1, ios_base::end);
cin >> b;
cout << a << ',' << b