В определенный момент разделить файл на заголовки и то что под ними - C (СИ)

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

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

есть задание связанное с чтением .ini файлов. и вообщем там в определенный момент надо разделить файл на заголовки и то что под ними. ну тут для проверки простой сделал чтобы сообщала прога - заголовок или нет
#include <stdio.h>
 
int main()
{
    FILE *f;
    char *s=new char[100];
    f=fopen("text.ini","rt");
    while(!feof(f))
    {
        fgets(s,99,f);
        if (s[0]=='[')
            printf("Head");
        else printf("Under head");
    }
    fclose(f);
    getchar();
    return 0;
}
прога выкидывает ошибку. как сделать то же самое но на WinApi?
text.txt ничего не изменил

Решение задачи: «В определенный момент разделить файл на заголовки и то что под ними»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    FILE *f;
    char *s = (char*) malloc(sizeof(char)*100);
    f = fopen("text.ini", "rt");
    while(fgets(s, 100, f) != NULL)
    {
         printf("%s", (s[0] == '[' ? "Head" : "Under head"));
    }
    fclose(f);
    free(s);
    getchar();
    return 0;
}

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

В этом коде:

  1. Подключаются стандартные библиотеки для работы с файлами и строками.
  2. Создается точка входа в программу.
  3. Создается указатель на файл и на строку (массив символов).
  4. Файл открывается на чтение.
  5. В цикле происходит чтение файла посимвольно до тех пор, пока не встретится символ конца строки или не достигнут конец файла.
  6. Если первый символ строки - '[' (т.е. начало раздела), то выводится Head, иначе Under head.
  7. После окончания чтения файла, он закрывается.
  8. Выделяемая память освобождается.
  9. Программа ожидает нажатия любой клавиши, чтобы завершиться.
  10. Возвращается 0, что означает успешное завершение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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