Сначала я записываю некоторые переменные типа int в файл .bin.Затем я пытаюсь прочитать эти цифры обратно, но я не могу этого сделать.
Вот как я пишу:
std::ofstream OutFile;
OutFile.open("encode.bin", std::ios::out | std::ios::binary);
for(int i = 0; i < all.size(); i++){
int code = codes[i];
OutFile.write(reinterpret_cast<const char *>(&code), sizeof(int));
}
OutFile.close();
А вот так выглядят мои .bin-файлы, когда я пишу числа: 65, 66, 66, 257, 258, 260
Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000: 41 00 00 00 42 00 00 00 42 00 00 00 01 01 00 00
00000010: 02 01 00 00 04 01 00 00
Есть липроблема с порядком байтов?Я вижу, что цифры поменялись местами.
И как я это читаю:
std::vector<int> allCodes;
std::ifstream inputD(file, std::ios::binary);
std::vector<char> buffer((
std::istreambuf_iterator<char>(inputD)),
(std::istreambuf_iterator<char>()));
for (auto a : buffer) {
data.push_back(static_cast<int>(a));
allCodes.push_back(a);
};
Когда я отображаю мой вектор, первые три числа (65, 66, 66)
читаются правильно, с несколькими нулями между ними.
Вот как выглядит дисплей: