Зачем использовать символы без знака для записи в двоичные файлы? И почему не следует использовать операторы потока для записи в двоичные файлы?

Мой первый вопрос: почему принято использовать символы без знака для записи в файлы в двоичном режиме? Во всех примерах, которые я видел, любое другое числовое значение приводится к беззнаковому типу char перед записью в двоичный файл.

Мой второй вопрос: что плохого в использовании потоковых операторов для записи в двоичные файлы? Я слышал, что операторы read () и write () лучше всего использовать для записи в двоичные файлы, но я не совсем понимаю, почему это так. Использование операторов потока для записи в двоичные файлы отлично работает для меня, ЕСЛИ я сначала приводил значение к unsigned char.

float num = 500.5;
ostream file("file.txt", ios::binary);

file << num  // results in gibberish when I try to read the file later
file << (unsigned char)num  // no problems reading the file with stream operators

Заранее спасибо.

0
задан InvalidBrainException 18 September 2011 в 07:55
поделиться