用于读取字符串时C++提取运算符的行为

vir*_*nux 1 c++ string iostream

我正在使用一些C++代码,并注意到以下形式的一些代码:

ss >> str;
Run Code Online (Sandbox Code Playgroud)

其中ss是一个流(在这种情况下是一个字符串流),str是一个字符串.

这段代码的定义行为是什么?具体来说,执行此操作后str的值是多少?

Jam*_*nze 11

除非skipws设置了标志ss.flags()(默认情况下,但您可以取消设置),跳过空格(并且不会复制到空格区域str),然后ss从输入中复制文本,直到遇到空格或文件结尾(或者耗尽内存,或者读取 std::string::max_size字符).

什么是空白区域取决于所在ctype<char>地区 ss.