Функция
#include <stdio.h>
int fscanf(FILE * stream, char * format[, adress,...]);
сканирует посимвольно набор вводимых полей, считывая их из потока. Затем каждое поле из потока форматируется в соответствии со спецификацией формата, которая передается fscanf в виде указателя на строку format. Полученное в результате этого поле fscanf запоминает в аргументах, передаваемых функции fscanf после параметра format. Количество аргументов должно совпадать с количеством спецификаций формата.
Описание спецификаций формата приведено в описании функции scanf.
Функция fscanf завершает сканирование отдельного поля при появлении пробела, являющегося разделителем, или при вводе поля, для которого указана ширина. Эти случаи обсуждаются в описании функции scanf.
Функция fscanf возвращает количество успешно прочитанных, преобразованных и запомненных входных полей; возвращаемое значение не включает в себя прочитанные поля, которые не были сохранены.
Если fscanf делает попытку чтения в конце файла, то возвращается EOF. Если не было записано ни одного поля, возвращается значение 0.
|
|
Пример:
#include<stdlib.h>
#include<stdio.h>
int main(void)
{
int i;
printf("Введите целое число:");
/* ввести из стандартного потока stdout целое число */
if(fscanf(stdin,"%d",&i))
printf("Целое равно:%d\n",i);
else
{
fprintf(stderr,"Ошибка чтения целого\n");
exit(1);
}
return 0;
}
Функция freopen
Функция
#include <stdio.h>
FILE*freopen (const char*filename, const char*mode, FILE*stream)
закрывает поток, на описание которого указывает stream, а затем открывает файл, на спецификацию которого указывает ASCIIZ-строка filename. Режим открытия файла задает ASCIIZ- строка mode. Символы, формирующие режим, приведены в табл.3.1. В случае успеха функция возвращает указатель на описание открытого потока, которое будет совпадать с stream. В противном случае функция возвращает NULL. Повторное открытие того же самого файла изменяет права доступа, очищает внутренние буферы и позиционирует указатель записи-чтения либо на начало файла (r, w, r+, w+), либо на его конец (а, а+). Если файлы разные, переоткрытие приводит к переадресации файлового ввода-вывода. Эта функция обычно применяется для переадресации предоткрытых потоков stdin, stdout, stderr, stdaux, stdprn в файлы, определяемые пользователем.