Функция fscanf считывает данные с текущей позиции вводимого потока в заданный список аргументом в соответствии с заданным условием. Общая структура выглядит так
1 |
fscanf (stream, format-string [, argument ...]); |
где stream – поток данных, который мы считываем, format-string – условия при которых данные сохранятся и [, argument1, argument2, …] –аргументы.
Для примера рассмотрим часть кода с этой функцией.
1 2 3 4 5 6 |
char str [60]; FILE * aF; aF = fopen ("file.txt","w+"); fscanf (aF, "%s", str); fclose (aF); |
В первых двух строках идет объявление необходимых в работе переменных – массива символов str и файла (а если корректней, то потока) aF.
Далее идет инициализация aF, путем открытия файла file.txt. На следующей строке идет нужная нам функция. Первой переменной в fscanf является aF – тот поток, из которого мы будем считывать данные. Далее идет идентификатор %s, показывающий, что считывание будет происходить до 1-ого пробела. Возможны и другие идентификаторы, например %i, сохраняющее любое целое число 10-тичной, 8-ричной или 16-ричной системы. И последнее str – куда записывается данные из потока. В итоге в str сохранятся символы из потока, начиная с первого символа, пока не встретится пробел. Последняя строка закрывает файл.