Основы программирования на C++, PASCAL
int gets(FILE *fptr);
Функция возвращает значение считываемого из файла символа. Если достигнут конец файла, то возвращается значение EOF. Заметим, что это происходит лишь в результате чтения кода EOF.
Исторически сложилось так, что gets() возвращает значение типа int. To же можно сказать и про аргумент ch в описании функции puts(). Используется же в обоих случаях только младший байт. Поэтому обмен при обращении может происходить и с переменными типа char.
Пример 1. Составим программу записи в файл символьной последовательности, вводимой с клавиатуры. Пусть признаком завершения ввода будет символ *.
В результате на диске (в каталоге, определяемом системой) будет создан файл с именем test.dat, который заполнится вводимыми символами. Символ * в файл не запишется.
Пример 2. Файл, созданный в результате работы предыдущей программы, требуется последовательно прочитать и содержимое вывести на экран.
Связь между результатом работы предыдущей программы и данной программой осуществляется через имя физического файла, которое в обоих случаях должно быть одним и тем же.
Запись и чтение целых чисел. Запись целых чисел в поток без преобразования их в символьную форму производится функцией putw () с прототипом
int putw(int, FILE *fptr) ;
Если операция прошла успешно, то возвращается записанное число. В случае ошибки возвращается константа EOF.
Считывание целого числа из потока, открытого для чтения, производится функцией getw() с прототипом
int getw(FILE *fptr);
Функция возвращает значение считываемого из файла числа. Если прочитан конец файла, то возвращается значение EOF.
Пример 3. Составим программу, по которой в файл запишется последовательность целых чисел, вводимых с клавиатуры, а затем эта последовательность будет прочитана и выведена на экран. Пусть признаком конца ввода будет число 9999.
После завершения ввода чисел в файл его необходимо закрыть. При этом происходит сброс накопленных в буфере значений на диск. Только после этого можно открывать файл для чтения. Указатель устанавливается на начало потока, и дальнейшее чтение будет происходить от начала до конца файла.
Запись и чтение блоков данных. Специальные функции обмена с файлами имеются только для символьного и целого типов данных. В общем случае используются функции чтения и записи блоков данных