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))

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

  1. Входные данные: pFile - указатель на файл, sValue - указатель на строку, sType - указатель на строку.
  2. Выполняется цикл while, условием которого является ненулевое значение функции fscanf.
  3. Внутри цикла происходит чтение данных из файла с помощью функции fscanf.
  4. Форматное указание %[^-]-%[^;];\n означает, что нужно прочитать данные до символа -, затем до символа ;, а затем символ \n.
  5. Считанные данные сохраняются в переменной sValue и sType соответственно.
  6. После окончания цикла происходит переход на следующую итерацию с помощью оператора goto.
  7. Цикл продолжается до тех пор, пока не будет достигнут конец файла (EOF).

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


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

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

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