Функцией управляют три параметра.
FILE *in; //указатель потока
Для связывания указателя с файлом служит функция открытия файла fopen(), которая объявлена в заголовочном файле <stdio.h>.
in = fopen("test", "r");
1 параметр - имя открываемого файла
2 параметр -
"r"-по чтению "r+"-чтение и запись
"w"-по записи "w+"-запись и чтение, если файл уже был, он перезаписываетя
"a"-дозапись "a+"-чтение и дозапись, если файла еще не было, он создается
"b"-двоичный файл
"t"-текстовый файл
in является указателем на файл "test". Теперь будем обращаться к файлу через этот указатель.
Если файл не был открыт (его нет, нет места на диске), то возвращается в указатель 0.
if((in=fopen("test", "r"))==0)
puts("Ошибка открытия файла");
Можно по другому
in=fopen("test", "r");
if (!in)
puts("Ошибка открытия файла");
Закрытие файла fclose()
fclose(FILE *stream); //Если файл закрыт успешно, то возвращается 0 иначе -1.
Функции ввода/вывода одного символа fgetc(), fputc()
1. Чтение из файла посимвольно
|
|
int fgetc(FILE *stream);
2. Запись в файл посимвольно
int fputc(int c, FILE *stream);
Код этого же символа и возвращается.
ch=fgetc(in);
fputc(ch,out);
# include <stadio.h>
void main(void){
FILE *in,*out;
char ch;
if((in=fopen("prog1", "r"))==0)
fputs("Ошибка открытия prog1");
if((out=fopen("prog2", "w"))==0)
fputs("Ошибка открытия prog2);
while((ch=getc(in))!=EOF) //”End Оf File” константа определенная в dos.h
fputc(ch, out);
fclose(in);
fclose(out);
}
Функции форматированного ввода/вывода в файл
1. Форматированный вывод в текстовый файл
int fprintf(FILE *stream,”управл.cтрока”,arg1,…)
Возвращает количество записанных байтов.
2. Форматированный ввод из текстового файла
int fscanf(FILE *stream,”управл.cтрока”,&arg1,…)
Возвращает количество прочитанных байтов.
# include<stadio.h>
void main(void){
FILE*in;
int age;
in=fopen("prog1", "r");
fscanf(in,"%d",&age);
fclose(in);
in=fopen("prog2", "w");
fprintf(in,"число %d\n",age);
fclose(in);
}
Модификаторы и спецификаторы, те же, что и в printf().