在二进制模式下使用格式化的IO操作有什么问题,特别是如果我只处理文本文件?在二进制模式下使用格式化的IO操作?
(1):
对于二进制文件,阅读和与提取和插入运算符(< <和>>)和函数写数据,如函数getline是没有效率的,因为我们并不需要格式化的任何数据并且数据可能不会按行格式化。
(2):
通常情况下,二进制文件I/O不使用传统的面向文本的< <和>>运算!它可以完成,但这是一个高级话题。
“高级话题”的本质是让我质疑这两者的混合。有一个mingw bug与查找和告诉功能可以解决打开二进制模式。使用< <和>>在二进制模式下与文本模式相比是否存在任何问题,或者如果打开二进制文件,我是否必须始终使用未格式化的IO? As far as I can tell for text files,我只需要考虑回车符(\ r),这些回车符不会被隐式删除/添加给我,但是所有这些都是要考虑的吗?
文件的*二进制模式*表示在读取或写入文件('ios :: binary')时不会发生翻译。一种常见的翻译是行结尾。这与使用'istream :: read'和'ostream :: write'直接读取和写入未格式化的数据不同。 –