Bootstrap

如何正确清空cin缓存

关于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 
;