什么是流"<<"和写的区别

Ver*_*ion 8 c++ file visual-c++

我以二进制模式打开了一个文件,喜欢写入文件.

   ofstream ofile("file.txt",ios_base::binary)
    int a = 1;
    float f = 0.1;
    string str = 10;
    ofile<<a<<f<<str;
Run Code Online (Sandbox Code Playgroud)

想知道使用"<<"写和使用"ofile.write"之间的区别.这是以二进制模式写入的最佳和最有效的方法.

Ben*_*ley 10

operator <<将您的数据格式化为文本.而write将以与ram中存储的格式相同的格式输出数据.因此,如果您正在编写二进制文件,则需要使用write.

但是,如果您要编写非pod类型,则需要小心.你不能只说:

write( &mystring, sizeof(std::string) );
Run Code Online (Sandbox Code Playgroud)

您需要有一些方法来输出实际数据,这些数据不存储在类或结构本身中.