Проблема читання бінарного файлу
Доброго дня. виникла невеличка проблема:
суть запитання: є вихідний масив цілих чисел типу int. виглядає, приблизно осьтак:
1 0 1 1 1 0 1 0 1 3456 1 0 0 0 0 2 0 1 1 1 0 2 0 2 23336 23253712 2 0 0 0 0 3 0 1 1 1 0 3 -1 2 2346433 52111123 3 0 0 0 0 4 0 1 1 2 0 4 0 1234 2 591812489 159580160 4 0 0 0 0 5 0 1 1 2 0 5 -1 23465 2 -1739291791 0 5 0 0 0 0
записаний він у бінарний файл за допомогою Java, а конкретно класу DataOtputStream та його методу writeInt(). файл потрібно считати за допомогою с++, однак при читанні файлу виходить щось не зрозуміле:
результат читання плюсами:
16777216 0 16777216 16777216 16777216 0 16777216 0 16777216 −2146631680 16777216 0 0 0 0 33554432 0 16777216 16777216 16777216 0 33554432 0 33554432 677052416 −791518719 33554432 0 0 0 0 ....
функція читання файлу:
void readCode(string path) {
ifstream file(path, ios::binary);
if (!file.is_open()) {
cerr << "Error opening file" << endl;
}
file.seekg(0, ios::end);
streamsize syze = file.tellg();
file.seekg(0, ios::beg);
size_t count = syze / sizeof(int);
vector<int> code (count);
if(file.read(reinterpret_cast<char*>(code.data()), syze)) {
};
file.close();
for (int i : code) {
cout << i << " ";
}
}
int main() {
readCode("/home/as/IdeaProjects/Colibri/res/test.cof");
return 0;
}
можливо, хтось знає в чому проблема та як її можна вирішити? Дякую.

22 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів