我有一个包含二进制数据的std::string对象,需要将其写入文件。使用ofstream f("name"); f << s;会有问题吗?我需要确保读取的数据与原始数据完全相同。 当然可以使用fwrite(s.c_str(), s.size(), 1, filep),这两种方法有什么优缺点吗?
只要你以二进制方式打开ofstream,就应该没问题。ofstream f("name", ios::binary | ios::out); f << s; 不要忘记以二进制模式打开文件,当您读取数据时也需要这样做。
ofstream
..无论你的数据是否为二进制,坦白地说),但我会使用vector<char>
来增加舒适感。你没有使用的原因是什么? - Lightness Races in Orbitstring
的转换器类。string
似乎是操作缓冲区的便捷接口,例如将其附加/替换到另一个内容等。我曾经考虑过将binaryString
定义为basic_string<unsigned char>
,但这需要太多重构时间,而当时我没有那个时间。但是我能否使用vector<char>
的<<
运算符? - davka<<
来处理二进制数据,因为我的大脑会将其读作“格式化输出”,而这并不是你要做的事情。再次强调,这是完全有效的,但我不想让我的大脑感到困惑。:)本地追加肯定是有用的。 - Lightness Races in Orbit