二进制文件

以二进制的方式对文件进行读写操作
打开方式要指定为 ios::binary

写文件

二进制方式写文件主要利用流对象调用成员函数write
函数原型 :ostream& write(const char * buffer,int len);
参数解释:字符指针buffer指向内存中一段存储空间。len是读写的字节数

  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4. using namespace std;
  5. class Person {
  6. public:
  7. char name[32];
  8. int Age;
  9. };
  10. void Test() {
  11. ofstream ofs("Data.bin", ios::out | ios::binary);
  12. if (!ofs.is_open()) { cout << "File Open Failed" << endl; };
  13. Person p1 = {"张三",18};
  14. ofs.write((const char*)&p1, sizeof(Person));
  15. ofs.close();
  16. }
  17. int main() {
  18. Test();
  19. return 0;
  20. }

总结:

  • 文件输出流对象 可以通过write函数,以二进制方式写数据

    读文件

    二进制方式读文件主要利用流对象调用成员函数read
    函数原型:istream& read(char *buffer,int len);
    参数解释:字符指针buffer指向内存中一段存储空间。len是读写的字节数
    1. class Person {
    2. public:
    3. char name[32];
    4. int Age;
    5. };
    6. void Test() {
    7. ifstream ifs("Data.bin", ios::in | ios::binary);
    8. if (!ifs.is_open()) { cout << "File Open Error" << endl; };
    9. Person p1;
    10. ifs.read((char*)&p1, sizeof(Person));
    11. cout << p1.Age << endl;
    12. cout << p1.name << endl;
    13. ifs.close();
    14. }