Причина использования unsigned char
заключается в том, что он гарантированно равен unsigned
, что очень желательно, когда речь идет о побитовых операциях - что может пригодиться при манипулировании двоичными данными. Следует помнить, что char
(также известный как обычный char
) является отдельным типом от unsigned char
, и не указано, является ли это типом со знаком или без знака.
Наконец, отформатированные функции потоков предназначены для вывода / анализа текстового , удобочитаемого представления данных, где, например, 123456789
может 1 представляется в виде девяти символов "123456789"
, которые могут вмещаться в девять байтов. Для сравнения, возможное двоичное представление в виде 0x75BCD15
может уместиться в четыре байта, что более чем в два раза компактнее.
Не совсем неожиданно, что то, что вы делаете, успешно, так как то, является ли что-то двоичным файлом или нет, просто определяется тем, что вы делаете с ним. Если вы пишете текст в файл, это нормально, чтобы восстановить этот текст позже.
1 : в зависимости от, например, locales, что является еще одной функцией, специфичной для отформатированных функций.