Я хочу прочитать двоичный файл в 16-битных словах.Сейчас я использую std::ifstream
для чтения в массив из 2 символов c
.
#include <iostream>
#include <fstream>
#include <stdint.h>
int main() {
std::ifstream file("./tetris.rom", std::ios::in | std::ios::binary);
char c[2];
while (file.read(c, 2)) {
uint16_t word = (static_cast<uint8_t>(c[0]) << 8) | static_cast<uint8_t>(c[1]);
std::cout << "word\t" << std::hex << word << std::endl;
}
}
Это работает для меня, но есть ли лучший (более безопасный или быстрый) способ сделатьэто в C ++ 11?