Как считать один байт из файла? Следующий код работает, но некоторые байты пропускаются (0x09, 0x0a, 0x0b, 0x0c, 0x0d) и считывается следующий за ними байт.
ifstream file(fileName, std::ios_base::in | std::ios_base::binary);
uint8_t s;
file >> s;
Пытался еще сделать вот так,
file.readsome(&s, 1);
но uint8_t* не кастится к char*.
Использую именно uint8_t потому, что насколько я знаю стандартом размер char-а не регламентирован.
В чем проблема?
Я бы использовал char (чтоб он был не байтом - это надо потрудиться такое найти...) Тогда
file.get(char&);
или
file.read(char*,1);
Ну, а если строго uint8_t (который, готов спорить, у вас он просто unsigned char... если нет - то даже интересно, с чем вы таким имеете дело) - то
file.read(reinterpret_cast<char*>(&s),1);
ASCII
0x09 - горизонтальная табуляция (\t)0x0a - перевод строки (\n)0x0b - вертикальная табуляция0x0c - «прогон страницы», новая страница - команда для принтера начать печать с новой страницы0x0d - возврат каретки (\r)Выглядит так, как-будто вы читаете всё таки текстовый файл как текст, может быть оставить в конструкторе только std::ifstream::binary?
В крайнем случае всегда есть сишный fread().
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости