use*_*501 5 c++ file-io ifstream ofstream
这个问题涉及在向文件读取和写入数据时ifstream和ofstream的行为.
通过阅读stackoverflow.com,我已经设法发现operator<<(流插入运算符)在输出之前将诸如双精度的对象转换为文本表示,并且分别在存储在存储器(二进制格式)中时调用read()和write()读取和写入原始数据.编辑:这很明显,这里没什么意外.
我还发现以二进制模式打开文件会阻止不同操作系统根据需要自动转换换行符.
所以我的问题是:这是自动翻译,例如; 从\n到\r\n调用函数时发生的read()和write()?或者这种行为只是特定于operator<<.(还有operator>>.)
请注意,这里有一个类似但稍微不那么具体的问题.它没有给出明确的答案.使用/不使用ios :: binary模式打开流时使用读/写的区别
二进制和文本模式之间的差异处于较低级别。
如果您以文本模式打开文件,即使使用read和write操作,您也会获得翻译后的数据。
另请注意,仅当该位置是从前一个(或 0)获取时,才允许您seek访问文本文件中的位置tell。为了能够进行随机定位,文件必须以二进制模式打开。
| 归档时间: |
|
| 查看次数: |
1173 次 |
| 最近记录: |