【问题标题】:Trying to read backwards from a binary file试图从二进制文件中向后读取
【发布时间】:2021-02-16 12:36:05
【问题描述】:

我有一个二进制文件,其中存储了整数 1,2,3,4,5,6,7,8,9,10。我试图从 10 点开始读取文件,然后向后移动直到 1 点。这就是我所拥有的

int count = 1;
    file.seekg(-sizeof(int) * count, ios::cur);
    while (file.read((char*)&z, sizeof(int))) {
        cout << z << " ";
        count++;
        file.seekg(-sizeof(int) * count, ios::cur);
    }
    cout << endl;

输出只给我 10,9,7,4。这是为什么呢?

【问题讨论】:

    标签: c++ file while-loop binary


    【解决方案1】:

    您需要在seekg 调用中使用ios::end,或者总是向后移动两个元素的大小(-2 * sizeof(int),未由count 调整),一个用于您刚刚阅读的元素,一个用于您将要阅读的元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多