21xrx.com
2024-06-02 23:49:14 Sunday
登录
文章检索 我的文章 写文章
"C++读取二进制文件教程"
2023-07-04 20:10:15 深夜i     --     --
C++ 读取 二进制文件 教程 文件处理

C++读取二进制文件教程

二进制文件是一种保存数据的格式,它包含的是计算机可以直接读取的数字。相比于文本文件,二进制文件更加高效,能够在较短的时间内读取和写入大量的数据。在实际的编程过程中,我们可能需要读取并操作二进制文件中的数据,而C++正好提供了一种非常方便的方式来实现这个需求。

下面是一个简单的二进制文件的示例:


struct Person {

  char name[20];

  int age;

  double height;

};

void writeBinaryFile() {

  FILE *fp = fopen("people.bin", "wb");

  if (fp == NULL) {

    printf("文件打开错误");

    return;

  }

  

  Person p;

  strcpy(p.name, "Tom");

  p.age = 28;

  p.height = 178.5;

  fwrite(&p, sizeof(Person), 1, fp);

  

  fclose(fp);

}

在这个示例中,我们定义了一个Person结构体,包含了一个20字节的字符数组、一个整型和一个双精度浮点数。而后我们通过writeBinaryFile函数向people.bin文件中写入一个Person结构体。

接下来,我们将介绍一种方法来读取这个二进制文件中的数据。


void readBinaryFile() {

  FILE *fp = fopen("people.bin", "rb");

  if (fp == NULL) {

    printf("文件打开错误");

    return;

  }

  

  Person p;

  while (true) {

    fread(&p, sizeof(Person), 1, fp);

    if (feof(fp))

      break;

    

    printf("%s %d %.2f\n", p.name, p.age, p.height);

  }

  

  fclose(fp);

}

在这个函数中,我们打开了people.bin文件,并且声明了一个Person结构体p。然后,我们使用了一个while循环来循环读取文件中的数据。在每一次循环中,我们使用了fread函数来读取一个Person结构体,如果读取到了文件末尾,我们就会跳出循环。

最后,我们将读取到的每一个Person结构体打印出来,就可以验证我们的读取代码是否正确。

通过这个示例,我们可以看到C++读取二进制文件非常的简单。要点就是使用FILE指针打开文件,然后使用fread函数读取二进制数据。在读取二进制文件时,我们不需要关心文件中的内容的具体含义,只需要按照文件定义的格式来读取数据即可。

总而言之,C++是一门功能强大的编程语言,在文件处理方面,它提供了各种各样的函数和工具,这些函数和工具能够帮助我们在读取和写入二进制文件时更加高效、更加精确地操作数据。

  
  

评论区

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