Не могу понять функцию fwrite() - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Приветствую всех! Прошу объяснить почему при записи на файл структуру выходит только надпись Hello и вместо цифр и пробелов символы?
#include <stdlib.h>
#include <stdio.h>
 
struct pbooks
{
    int str;
    char ch[10];
    double lok; 
};
 
int main(int argc, char **argv)
{
    FILE *fp;
    
    struct pbooks sr = {1, "Hello", 12.5};
    
    if((fp = fopen("txt", "wb")) == NULL)
    {
        printf("Error");
        exit(1);
    }

    fwrite(&sr, sizeof(sr), 1, fp);
 
    fclose(fp);
 
    return 0;
}

Решение задачи: «Не могу понять функцию fwrite()»

textual
Листинг программы
fprintf(fp, "%d %s %g\n", sr.str, sr.ch, sr.lok);

Объяснение кода листинга программы

  1. fp - это файловый указатель, который указывает на файл, с которым мы работаем.
  2. sr - это структура данных, которая содержит три поля: str, ch и lok.
  3. fprintf() - это функция, которая используется для записи данных в файл.
  4. %d - это спецификатор формата, который указывает на то, что следующее значение должно быть записано как целое число.
  5. %s - это спецификатор формата, который указывает на то, что следующее значение должно быть записано как строка.
  6. %g - это спецификатор формата, который указывает на то, что следующее значение должно быть записано как число с плавающей точкой.
  7. \n - это символ новой строки, который указывает на то, что данные должны быть записаны на новую строку.
  8. sr.str, sr.ch и sr.lok - это поля структуры sr, которые содержат данные, которые мы хотим записать в файл.

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы