Fscanf, получение данных из файла - C (СИ)
Формулировка задачи:
Добрый день, именно в С не особо силён, поэтому есть дурацкий вопрос
Есть текстовый файл в формате:
Но на выходе получаю:
value-type; value-type; value-type; value-type;
Подскажите как при помощи fscanf, либо другой подобной функции получить структуру (состоящую из двух полей: value, type). Сейчас пишу так:while (EOF != fscanf(pFile, "%s-%s;", sValue, sType)) { printf("[%s][%s]\n", sValue, sType); }
[1-test;][2-test2;] [3-test3;][2-test2;]
Что в принципе логично. Подскажите пожалуйста как заставить программу считывать именно в том формате в котором мне нужно? Спасибо!
Неужели совсем нет идей?
Решение задачи: «Fscanf, получение данных из файла»
textual
Листинг программы
while (EOF != fscanf(pFile, "%[^-]-%[^;];\n", sValue, sType))
Объяснение кода листинга программы
- Входные данные: pFile - указатель на файл, sValue - указатель на строку, sType - указатель на строку.
- Выполняется цикл while, условием которого является ненулевое значение функции fscanf.
- Внутри цикла происходит чтение данных из файла с помощью функции fscanf.
- Форматное указание
%[^-]-%[^;];\n
означает, что нужно прочитать данные до символа-
, затем до символа;
, а затем символ\n
. - Считанные данные сохраняются в переменной sValue и sType соответственно.
- После окончания цикла происходит переход на следующую итерацию с помощью оператора goto.
- Цикл продолжается до тех пор, пока не будет достигнут конец файла (EOF).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д