Мой код выглядит так:
ОБНОВЛЕНО :
#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-битная) будет отображать правильную последовательность, включая шестнадцатеричный дамп.
Считая, однако, я получаю случайные последовательности, такие как отрицательные целые числа, которых не должно быть (это разделено, и в основномнули, поскольку мои целые числа малы, биты знака не должны быть включены.)
Видите ли вы, почему мой метод чтения не работает, когда он действительно противоположен моему методу записи?