在我对以下代码片段的实验中,无论我是否使用 ios:binary 模式创建流,我都没有发现任何特别的区别:
int main()
{
ifstream ostr("Main.cpp", ios::in | ios::binary | ios::ate);
if (ostr.is_open())
{
int size = ostr.tellg();
char * memBlock = new char[size + 1];
ostr.seekg(0, ios::beg);
ostr.read(memBlock, size);
memBlock[size] = '\0';
ofstream file("trip.cpp", ios::out | ios::binary);
file.write(memBlock, size);
ostr.close();
}
}
在这里,我试图将原始源文件复制到另一个名称不同的文件中。
我的问题是当使用/不使用 ios::binary 模式打开 fstream 对象时,读/写调用(与二进制文件 IO 相关联)有什么区别?使用二进制模式有什么好处吗?在进行文件 IO 时何时以及何时不使用它?