вывода можно выполнять операции чтения
int argc;
char *argv[] ;
(
FILE *fp;
char ch;
if(argc!=2) {
printf("Вы забыли ввести имя файла\n"};
exit(l);
}
if((fp=fopen(argv[l], "r"))==NOLL)(
printfC'He может открыть файл\n"};
exit(l);
}
ch=getc(fp); /* читать один символ */
while(ch!=EOF)
{
putchar(ch); /* печать на экран */
ch=getc(fp);
}
fclose(fp) ;
}
Под управлением буферизованной системы ввода- вывода можно выполнять операции чтения и записи с произвольным доступом с помощью функции
fseek(), которая устанавливает файловую позицию.
Например, для чтения 234-го байта в файле с именем test можно использовать следующую функцию:
funcl()
{
FILE *fp;
if((fp=fopen("test" ,"r"))==NULL)
{
printf("He могу открыть фаил\n");
exit(l);
}
fseek(fp,234L,0);
return getc(fp); /*читать один символ в 234-й позиции*/
}
В дополнение к рассмотренным до сих пор основным функциям ввода-вывода буферизованная система ввода-вывода включает функции
fprintf() и
fscanf(). Эти функции ведут себя точно так же, как функции printf() и scanf(), за исключением того, что они работают с дисковыми файлами. Обращения к функциям fprintf() и fscanf() имеют следующий вид:
fprintf(1р,<формат>,<список аргументов>);
fscanf(1р,<формат>,<список аргументов>);
где fp является файловым указателем, который возвращается вызовом функции fopen().
Содержание Назад Вперед