Fscanf с запятой - C (СИ)
Формулировка задачи:
Добрый вечер, вообщем есть структура в ней находится 2 массива типа char. При запуске программы надо считать с файла данные и перенести их в структуру. Проблема в том что отделение в тексте идет запятыми, а когда он записывает в первый char он записывает его с запятой, помогите решить проблему
Текст в файле допустим такой Иван, Rostov
struct sp{ char name[10]; char sit[10] }p; fscanf(file, "%s %s", p.name, p.sit);
Решение задачи: «Fscanf с запятой»
textual
Листинг программы
fscanf(file, " %[^,],%s", p.name, p.sit);
Объяснение кода листинга программы
В данном коде используется функция fscanf для чтения данных из файла. Формат ввода ожидается следующим: сначала идет строка, которая заканчивается символом запятой (,
). Далее, после этой строки, идет еще одна строка, которая заканчивается символом новой строки (\n
).
Используется спецификация формата %[^,],%s
, которая означает следующее:
%[^,]
- это спецификация для чтения строки, которая состоит из любых символов (кроме запятой), и она прочитывается до тех пор, пока не встретит символ запятой (,
). В этой части формата мы читаем данные из файла и сохраняем их в переменной p.name.%s
- это спецификация для чтения строки, которая состоит из любых символов (кроме символа новой строки (\n
)). В этой части формата мы читаем данные из файла и сохраняем их в переменной p.sit. Таким образом, после выполнения данного кода, переменные p.name и p.sit будут содержать данные, которые были прочитаны из файла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д