将二进制数据(std :: string)写入std :: ofstream?

dav*_*vka 2 c++ binary iostream

我有一个std::string包含二进制数据的对象,我需要将其写入文件.可能ofstream f("name"); f << s;有问题吗?我需要完全按照原来的方式读回数据.

我当然可以使用fwrite(s.c_str(), s.size(), 1, filep),这两种方法都有任何优点/缺点吗?

Jon*_*Jon 6

只要打开forstream进行二进制访问,就应该没问题.

ofstream f("name", ios::binary | ios::out); 
f << s;
Run Code Online (Sandbox Code Playgroud)

在重读数据时,不要忘记以二进制模式打开文件.