Прежде всего, вы пишете неправильный размер и можете выйти за пределы. Вместо этого используйте strlen
, чтобы получить длину строки.
Во-вторых, подумайте о том, как буква в виде 'a'
хранится в памяти компьютера. Он хранится в любой кодировке, используемой компилятором и операционной системой, что, скорее всего, является ASCII. Когда вы пишете это письмо в файл, он записывает значение, хранящееся в памяти, в файл, и если вы читаете файл с помощью программы, которая может расшифровать кодировку, она покажет вам письмо.
Я просто угадываю здесь, но я думаю, вы ожидали, что двоичный формат будет писать фактические и нули в виде текста. Ну вы do пишите и нули, а не как текст, а как отдельные биты. И когда все эти биты объединены в байты, вы получаете байты, поскольку они хранятся в памяти. Если вы посмотрите на файл в шестнадцатеричном редакторе, вы увидите фактические значения, и вы даже сможете найти программу, которая показывает фактические двоичные значения как единицы и нули.
Это была моя теория. я думаю, моя книга не описывает вещи достаточно хорошо – Rokni