【发布时间】:2014-07-30 02:11:06
【问题描述】:
对于std::stream
/ostream
/istream
/...
:使用运算符<<
和>>
或使用write()
和read()
方法有什么区别?
我想对于二进制写入/读取,您应该使用 write
/read
,但是 text/ASCII 有什么区别吗?
【问题讨论】:
对于std::stream
/ostream
/istream
/...
:使用运算符<<
和>>
或使用write()
和read()
方法有什么区别?
我想对于二进制写入/读取,您应该使用 write
/read
,但是 text/ASCII 有什么区别吗?
【问题讨论】:
write
和 read
对正在打印的数据一无所知 - 对他们来说,只有字节。另一方面,<<
和 >>
了解您打印的内容,并且只能为给定的数据类型重载。因此读取和写入通常更快 - 没有复杂的逻辑发生,我们只需将字节打印到流中。
【讨论】:
read
和write
本身当然更快,但是因为它们处理未格式化的数据,我们必须添加格式化函数来将数据插入缓冲区并从缓冲区中提取出来。 (诚然,格式化二进制数据通常比格式化文本更快,但您仍然不能完全忽略它。)