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