Функции ввода-вывода, работающие с файлами

1. Функция чтения символа из файла fgetc. Функция fgetc читает один символ из вводного потока/

 

#inc lude <stdio .h>
int fgetc(f);  
FILE *f;    

Возвращаемое значение:

1) код прочитанного символа;

2) EOF, если конец файла или ошибка.

2. Функция записи символа в файл fputc. Функция fputc записывает одиночный символ, имеющий код с, в поток / Это аналог функции putchar для работы с файлами.

 

#inc lude <stdio .h>
int fputs(c,f);  
int c;    
FILE *f;    

Возвращаемое значение:

1) код записанного символа;

2) EOF, если встретился конец файла или произошла ошибка.

Пример.Посимвольное копирование файла

 

 

 

 

#include <stdio.h>  
main () { FILE *in, *out;  
 
int c;  
if((in=fopen("in.dat","r"))! { if((out=fopen("out.dat", { while((c=fgetc(in)) =NULL)
"w"))!=NULL)
!=EOF)
fputc(c,out);  

fclose(out); fclose(in);

} else

printf("He могу открыть out.dat n");

} else

printf("He могу открыть in.dat n"); }

Функции fscanf и fprintf. Действия данных функций похоже на действия функций scan/ и printf, однако эти функции работают с файлами данных, и первый аргумент функций — это указатель на файл.

3. Функция fscanf читает данные из указанного потока /, выполняя форматные преобразования, и полученные значения записывает в переменные, адреса которых задаются параметрами argument.

 

#include <stdio.h>    
int fscanf(f, format string [,argument. .] ) ;
FILE *f;    
char ^format string;    

4. Функция fprintf выполняет формальные преобразования данных и печатает последовательность символов и значений в выводной поток/

 

#include <stdio.h>    
int fprintf(f, format string[, argument. .] ) ;
FILE *f;    
char ^format string;    

Пример.Дано два файла S.dat и Sl.dat. Необходимо считать число типа int из файла S.dat и записать его в файл Sl.dat.

 

main () г          
FILE *S, *S1;        
  /* S — указатель на файл S.dat */
  /* SI - указатель на файл SI .dat*/
  int age;          
  S=fopen( "S.dat", и -р и ) ;    
  Sl=fopen ("Sl.dat" и a") ;    

  fscanf(S, "%d", &age);  
  fclose (S);  
  fprintf(SI,"Пете - %d лет n", age) ;
  fclose (SI);  
}    

Функции /gets и /puts предназначены для ввода-вывода строк, они являются аналогами функций gets и puts для работы с файлами.

5. Функция чтения строки символов из файла/gets. Функция /gets читает строку из входного потока f и помещает её в строку, адрес которой задается значением параметра s. Символы читаются из потока до тех пор, пока не будет прочитан символ новой строки 'п', который включается в строку, или пока не наступит конец потока или не будет прочитано п- символов. Результат помещается в s и заканчивается нулевым символом ''. Функция возвращает адрес строки.

 

#incl ude <std io. h>      
char *fgets (s , n, f) ;      
char *s;          
int г v;          
FILE *f;          
  /* f - указатель на файл */

6. Функция записи строки символов в файл /puts. Функция /puts копирует строку s в поток f с текущей позиции. Завершающий нулевой символ не копируется.

 

#inc lude <stc lio h>
int fputs 3 (S, f) ,  
char *s;      
FILE *f;