二进制文件

写二进制文件

// 写二进制文件
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;
};

文件中已按照狗类的定义,使用二进制存储了一个狗类的对象。

可以发现,不管是都还是写,以二进制方式都在流对象打开文件的时候增加了二进制的方式。

posted @ 2023-02-26 19:50  Meetalone  阅读(33)  评论(0编辑  收藏  举报