21xrx.com
2024-05-20 01:40:19 Monday
登录
文章检索 我的文章 写文章
C++中读写二进制文件的操作方法
2023-06-22 02:27:35 深夜i     --     --
C++语言 二进制文件 读写操作

在C++中,通过读写二进制文件可以对数据进行快速而高效的操作。二进制文件是由计算机生成的,使用二进制格式可以在磁盘上存储大量的数据,比文本格式更加节省空间和存储时间。同时,在一些特定的场景下,使用二进制文件可以更好地保护数据的机密性。

要在C++中读写二进制文件,需要使用fstream类。该类包含对文件进行读写操作的函数。一个常见的用法是:


#include <fstream>

using namespace std;

struct student {

  int id;

  char name[20];

  float score;

};

int main() {

  ofstream outfile;

  outfile.open("student.dat", ios::out | ios::binary);

  if (outfile.is_open()) {

    student stu1;

    stu1.id = 1;

    strcpy(stu1.name, "Tom");

    stu1.score = 89.5;

    outfile.write((char *)&stu1, sizeof(student));

    outfile.close();

  }

  ifstream infile;

  infile.open("student.dat", ios::in | ios::binary);

  if (infile.is_open()) {

    student stu2;

    infile.read((char *)&stu2, sizeof(student));

    cout << stu2.id << " " << stu2.name << " " << stu2.score << endl;

    infile.close();

  }

  return 0;

}

在上面的例子中,我们定义了一个结构体student,其中包含学生的ID、姓名和分数。我们首先使用ofstream类创建一个输出文件流outfile,并打开名为“student.dat”的文件,我们使用ios::out和ios::binary标志表示我们要将数据写入二进制文件。然后,我们创建了一个学生对象stu1,将其信息写入outfile中,并关闭文件。

接着,我们使用ifstream类创建一个输入文件流infile,并打开名为“student.dat”的二进制文件,指定文件的读取标志为ios::in和ios::binary。我们创建了一个新的学生对象stu2,使用infile.read()方法从文件中读取数据,然后将其写入stu2中,并输出到屏幕上。最后,我们关闭了文件流并结束了程序。

总体来说,使用fstream类读写二进制文件是一个非常高效且可靠的方法。但请注意,二进制文件经常涉及浮点数,因此,在多个平台之间共享数据时,请确保使用相同的字节序。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复