在实际场景中,可能需要读取首字符,然后后面的内容不要了。但是按照c++
中cin
的尿性,会帮你保留剩余的字符在缓冲区,然后下次读取的时候,会把之前缓冲的,没有读到的字符给你。这往往不是我们想要的,我们只要首字符,然后后面的应该被全部丢弃。
基于此需求,我写了一个简单小巧的函数,用于读取首字符,然后剩下的全部丢掉。
#include <iostream>
using namespace std;
char getFirst() {
char first = EOF;
int drop;
while ((drop = cin.get()) != '\n') {
if (first == EOF) {
first = (char) drop;
}
// cout << char(drop);
}
// cout << "\n first==" << first << endl;
cin.clear();
return first;
}