Невозможно прочитать простые двоичные целые числа из файл? (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;
}

Теперь часть записи выглядит успешной, например, выполнение команды od с 32-битными длинными (мой 32-битная система) отобразит правильную последовательность, включая шестнадцатеричный дамп.

Однако при чтении я получаю случайные последовательности, такие и отрицательные целые числа, которых не должно происходить (они разбиты на части и в основном нули, поскольку мои целые числа маленькие, биты знака не должны быть включены.)

Вы понимаете, почему мой метод чтения не работает, когда он действительно противоположен моему методу записи?

8
задан John S. 7 June 2011 в 07:54
поделиться