Распарсить строку csv файла - C (СИ)

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

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

Есть строки в файле разделенные пробелом Считываю в цикле
fscanf(file,"%s%s%s%*c", val[0], val[1], val[2]);
Подскажите как, так же разобрать строки разделенные не пробелом, а запятой?

Решение задачи: «Распарсить строку csv файла»

textual
Листинг программы
int main(void)
{
        char znak[3][64];
        FILE *file;
        if(file = fopen("file.txt", "r"))
                while(fscanf(file, "%63[^,]%*c%63[^,]%*c%63[^\n]%*c", znak[0], znak[1], znak[2]) != EOF)
                        printf("%s:%s:%s\n", znak[2], znak[1], znak[0]);
        else
                puts("ERROR не могу открыть файл");
        return 0;
}

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

  1. Объявлены три массива строк znak[3][64] для хранения данных из файла.
  2. Открывается файл file.txt в режиме чтения r с помощью функции fopen.
  3. Если файл успешно открыт, то начинается цикл while, который выполняется до тех пор, пока не достигнут конец файла EOF.
  4. Внутри цикла каждая строка файла считывается функцией fscanf в три массива znak[2], znak[1], znak[0] соответственно.
  5. Форматирование строки fscanf состоит из трех частей: первая - считывает все символы до запятой, вторая - считывает все символы до следующей запятой, третья - считывает все символы до символа новой строки.
  6. Выводится сообщение об ошибке, если файл не удалось открыть.
  7. Возвращается 0 в конце программы, что означает успешное выполнение.

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


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

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

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