Lig*_*ica 7 c++ iostream c++03
我能找到的所有文档都说std::basic_istream<>::ignore(n)"提取并丢弃字符",但这种提取意味着什么并不十分清楚.
对于std::ifstream特别,可以实现使其等同于简单地seekg在文件中-ing?如果是这样,主流实现会这样做吗?
否则,如果字符在被丢弃之前确实被"读取",那么ignore在seekg可用时似乎是一个糟糕的选择(例如,使用文件或字符串流).
是的,有区别。
即使我们只考虑 as-if 规则,提取字符也会对流状态产生影响(考虑各种状态标志),并且我们可以从libstdc++ 实现中看到,流的行为就像调用者使用了提取的字符一样。
如果有任何“优化”来完全跳过字符,那么这种可观察到的行为将会有所不同。
要应用此“优化”,您应该seekg自己执行此操作,小心不要超出流的末尾。
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |