istream :: get(char&)和operator >>(char&)之间的区别

Die*_*nso 1 c++ istream

我的问题似乎和这个问题一样,但我没有找到答案,因为最初的问题似乎要求更具体的问题.在C++ 98中,有什么区别

char c;
cin.get(c);
Run Code Online (Sandbox Code Playgroud)

char c;
cin >> c;
Run Code Online (Sandbox Code Playgroud)

我已经检查了getoperator >>的cplusplus参考,它们看起来和我一样.

我已经尝试了上面的代码,当我输入一个char时,它们的行为似乎相同.

Ant*_*ile 5

差异取决于流缓冲区何时存在空白字符.

考虑输入'foo'

char c;
cin.get(c);
Run Code Online (Sandbox Code Playgroud)

将存储' '在c

然而

char c;
cin >> c;
Run Code Online (Sandbox Code Playgroud)

将跳过空白并存储'f'在c中