【问题标题】:std::stream write / read vs operator << / operator >>std::stream 写/读 vs 操作符<</操作符>>
【发布时间】:2014-07-30 02:11:06
【问题描述】:

对于std::stream/ostream/istream/...:使用运算符&lt;&lt;&gt;&gt;或使用write()read()方法有什么区别?

我想对于二进制写入/读取,您应该使用 write/read,但是 text/ASCII 有什么区别吗?

【问题讨论】:

    标签: c++ std iostream


    【解决方案1】:

    writeread 对正在打印的数据一无所知 - 对他们来说,只有字节。另一方面,&lt;&lt;&gt;&gt; 了解您打印的内容,并且只能为给定的数据类型重载。因此读取和写入通常更快 - 没有复杂的逻辑发生,我们只需将字节打印到流中。

    【讨论】:

    • ...另外,这不涉及文本/二进制文件的划分,这是在较低层处理的。
    • readwrite 本身当然更快,但是因为它们处理未格式化的数据,我们必须添加格式化函数来将数据插入缓冲区并从缓冲区中提取出来。 (诚​​然,格式化二进制数据通常比格式化文本更快,但您仍然不能完全忽略它。)
    相关资源