小编Joh*_* S.的帖子

无法从文件中读取简单的二进制整数?(C++)

我的代码就像这样:

更新:

#include <iostream>
#include <fstream>

using namespace std;

int main(int argc, char **argv)
{
  ifstream r("foo.bin", ios::binary);
  ofstream w("foo.bin", ios::binary);
  int i;

  int ints[10] = {0,1,2,3,4,5,6,8,9};
  w.write((char*)&ints, sizeof(ints));

  int in_ints[10];
  r.read((char*)&in_ints, sizeof(in_ints));

  for(i = 0;i < 10;i++) {
    cout << in_ints[i] << " ";
  }
  cout << endl;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在,写入部分似乎成功,例如运行32位长的od命令(我的系统是32位)将显示正确的序列,包括十六进制转储.

然而,读取时,我得到的随机序列和负整数不应该发生(它被拆分,并且大多数为零,因为我的整数很小,符号位不应该打开.)

你知道为什么我的read方法无法工作,当它真的与我的write方法相反时?

c++ binary integer ifstream

8
推荐指数
2
解决办法
7329
查看次数

标签 统计

binary ×1

c++ ×1

ifstream ×1

integer ×1