我见过人们做的事......
istringstream ibuf;
if (ibuf >> zork >> iA >> Comma >> iB)
Run Code Online (Sandbox Code Playgroud)
现在我猜这个值取决于>> iB暴露了什么,但究竟是什么,它是什么意思?真的意味着所有的iet都被提取了吗?
还有,表达之后
ibuf >> zork >> iA >> Comma >> iB;
Run Code Online (Sandbox Code Playgroud)
有没有办法找出提取了多少字符和项目?
这是因为 istream 对象的两个属性:
>>,以允许链接多个提取 ( a >> b >> c).good()istream在通过重载转换/转换为 bool 时返回其状态(就像被调用一样)bool operator !()基本上,您编写的代码是以下内容的简写版本:
if ( ((((ibuf >> zork) >> ia) >> Comma) >> ib).good() ) {
}
Run Code Online (Sandbox Code Playgroud)
一旦所有的提取都发生了,你剩下的就是if (ibuf)隐含地像写作一样if ((bool)ibuf),它检查ibuf.good()。
无法获得一系列链接提取中提取的字符数,但您可以使用函数gcount找到最后一次操作中提取的字符数。但是,它仅适用于某些忽略格式的函数,例如getand getline,而不适用于提取运算符。
| 归档时间: |
|
| 查看次数: |
350 次 |
| 最近记录: |