这个问题涉及到 ifstream 和 ofstream 在读写文件时的行为。
从阅读 stackoverflow.com 的文章中,我了解到 operator<<(流插入运算符)将诸如双精度浮点数之类的对象转换为文本表示形式后输出,并且调用 read() 和 write() 函数分别以二进制格式读取和写入原始数据。编辑:这一点很明显,没有什么意外的。
我还发现,在二进制模式下打开文件可以防止自动翻译不同操作系统所需的换行符。
因此,我的问题是:当调用函数 read() 和 write() 时,是否会发生这种自动翻译,例如从 \n 转换为 \r\n?或者这种行为只针对 operator<<(以及 operator>>)?
请注意,这里有一个类似但稍微不太具体的问题。它没有给出确定的答案。 使用 ios::binary 模式打开流时使用 read/write 的差异
从阅读 stackoverflow.com 的文章中,我了解到 operator<<(流插入运算符)将诸如双精度浮点数之类的对象转换为文本表示形式后输出,并且调用 read() 和 write() 函数分别以二进制格式读取和写入原始数据。编辑:这一点很明显,没有什么意外的。
我还发现,在二进制模式下打开文件可以防止自动翻译不同操作系统所需的换行符。
因此,我的问题是:当调用函数 read() 和 write() 时,是否会发生这种自动翻译,例如从 \n 转换为 \r\n?或者这种行为只针对 operator<<(以及 operator>>)?
请注意,这里有一个类似但稍微不太具体的问题。它没有给出确定的答案。 使用 ios::binary 模式打开流时使用 read/write 的差异