Почему я не могу записать char в двоичный файл в C-программировании? - PullRequest
0 голосов
/ 06 июня 2018
int main(){

    FILE *fptr=fopen("clients.dat","wb");
    char a='c';
    //int b=5;
    fwrite(&a,sizeof(char),1,fptr);
}

Почему, когда я запускаю эту программу, "clients.dat" не является двоичным файлом. Но если я комментирую char и раскомментирую int, тогда файл clients.dat является двоичным файлом. Это то же самое в структуре.Если внутри структуры есть только символ, то он не создает двоичный файл, но если есть символ и другой тип данных, он создает двоичный файл.

Может кто-нибудь написать причину этого?

1 Ответ

0 голосов
/ 06 июня 2018

Вы пишете в существующий файл, который был открыт в режиме "wb", , который перезапишет существующее содержимое файла .Итак, ваш единственный символ 'c' записывается в начало файла, и независимо от того, что там было раньше, теперь это единственная вещь в вашем файле.

Что касается того, почему он больше не считается двоичнымэто потому что 'c' это печатный символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...