写二进制文件
// 写二进制文件 void test0() { ofstream ofs; ofs.open("dog.txt", ios::out | ios::binary); // 以二进制方式写文件 Dog d; ofs.write((const char*)&d, sizeof(Dog)); // write 的第一个参数是对象的地址,并且要转化成const char*的方式 ofs.close(); }
将狗类写入后:
读二进制文件
//读二进制文件 void test1() { ifstream ifs; ifs.open("dog.txt", ios::in | ios::binary); if (!ifs.is_open()) { cout << "文件打开错误。" << endl; return; } else { Dog tmp; ifs.read((char*)&tmp, sizeof(Dog)); // 调用read函数,将文件中二进制对象读入tmp中 cout << tmp << endl; }
ifs.close(); }
输出结果:
狗类的定义:
class Dog { public: string name; int age; };
文件中已按照狗类的定义,使用二进制存储了一个狗类的对象。
可以发现,不管是都还是写,以二进制方式都在流对象打开文件的时候增加了二进制的方式。
标签:文件,ifs,二进制,ios,ofs,open From: https://www.cnblogs.com/meetalone/p/17157462.html