fp является указателем файла типа
fp является указателем файла типа FILE, который возвращается функцией fopen(). В тех случаях, когда достигается конец файла, функция getc() возвращает маркер его конца EOF. Например, для чтения текстового файла до маркера конца файла можно использовать следующие операторы:
ch = setc(fp);
while(ch!=EOF)
{
ch = getc(fp);
}
Функция
feof() использует аргумент указателя-файла и возвращает 1, если достигнут конец файла, или 0, если не достигнут. Например, приведенная ниже программа читает двоичный файл до тех пор, пока ЭВМ не встречает маркер конца файла:
while(!feof(fp)) ch = getc(fp);
Функцию
fdose() используют для закрытия потока, который был открыт с помощью функции foреn(). Все потоки необходимо закрыть перед завершением программы. Аргументом функции является указатель файла, который закрывается.
Функции foреn(), getc(), putc() и fdose() составляют минимальный набор функций ввода-вывода. Простым примером использования функций putc(), foреn() и fdose() является программа, которая приведена ниже. Эта программа просто читает символы с клавиатуры и записывает иx в дисковый файл до тех пор, пока не введен знак $. Имя выходного файла задается из командной строки. Например, если вы назовете программу ktod («клавиша - на диск»), то набор на клавиатуре ktod test будет позволять вам вводить строки текста в файл с именем test.
Программа 108
#include
.h"
main(argc,argv) /*ktod
- клавиша на диск */
int argc;
char *argv[];
(
FILE *fp;
char ch;
if(argc!=2)
{
printf("Bы забыли ввести имя файла\n);
exit(l);
)
if((fp=fopen(argv[l], "w"))== NULL)
(
printf("He может открыть файл\n);
exit(l);
}
do
(
ch = getchar();
putc(ch, fp);
)
while (ch!='s');
fclose (fp) ;
}
Еще одним примером является программа
dtos, которая будет читать любой ASCII файл и выводить его содержимое на экран.
Программа 109
#include "studio.h"
main (argc, argv) /*dtos-wicK на экран*/
Содержание Назад Вперед