1

我们有一个二进制文件,表示按列排列的数据。

每列都有不同的数据格式,例如:

  • 第 1 列:8 个字节(无符号长整数)
  • 第 2 列:4 个字节(整数)
  • 第 3 列:4 个字节(浮点数)

在 C++ 中读取这些文件的最佳方法是什么,我可以在 matlab 中完成,但我真的不知道如何在 C++ 中完成

4

1 回答 1

5

假设这些值是有序的:

unsigned long int dataMember0 = 0;
int dataMember1 = 0;
float dataMember2 = 0.0;

std::ifstream fileStream("file.bin", std::ios::in | std::ios::binary);
fileStream.read((char*)&dataMember0, sizeof(unsigned long int));
fileStream.read((char*)&dataMember1, sizeof(int));
fileStream.read((char*)&dataMember2, sizeof(float));

您投射一个 char 指针,因为它被读取为一个字节数组(char 是一个字节)。如果你想循环这个过程:while(fileStream) {...}将执行直到没有更多的阅读

于 2013-10-09T21:19:31.950 回答