Тема 4.3. Работа с файлами

С точки зрения языка C, любой файл представляет собой последовательный поток байтов. Какждый файл заканчивается специальным маркером конца файла. Когда файл открывается, то ему ставится в соответствие поток ввода или вывода, в зависимости от того, для каких целей (можно также сказать с какими опциями) он был открыт.

В начале работы программы открываются три файла и связанные с ними потоки: стандартный ввод (stdin), стандартный вывод (stdout) и стандартная ошибка (stderr). Потоки обеспечивают каналы передачи данных между файлами и программами. Открытый файл возвращает указатель на структуру FILE, определенную в <stdio.h>

Стандартная библиотека поддерживает многочисленные функции чтения данных из файла и записи данных в файл.

  • fopen(имя файла, опция открытия) – открытие файла (w - на запись; r - на чтение, а - на добавление; w+ - создается файл для чтения и записи; r+ - открывается файл для чтения и записи, а - открывается файл для чтения и записи с помещением маркера текущей позиции в файле в конец файла).
  • fclose(указатель на файл) – закрытие файла.
  • feof(указатель на файл) – возвращает true если достигнут конец файла.
  • fgetc(указатель на файл) – считывает из файла один символ. Например, fgetc(stdin) считает один символ из стандартного потока, что эквивалентно использованию функции getchar().
  • fputc(символ, указатель на файл) – запись одного символа в файл. Например, fputc('a',stdout) эквивалентно putchar('a')
  • fgets(указатель на файл) – считывает из файла строку символов.
  • fputs(строка, указатель на файл) – запись строки в файл.
  • fscanf(указатель на файл-поток, строка формата ввода) – считывание из файла.
  • fprintf(указатель на файл-поток,строка формата вывода, список переменных для вывода) – запись в файл.
  • rewind(указатель на файл) – переместить указатель текущей позиции в файле на начало.
  • fwrite(адрес первой ячейки памяти, размер одного блока, количество блоков, указатель на файл) – вывести в файл указанное количество блоков в файл.
  • fread(адрес первой ячейки памяти, размер одного блока, количество блоков, указатель на файл) – прочитать из файла указанное количество блоков в файл.

Пример программы, в которой открывается файл на запись и в него выводятся данные клиента банка

Пример программы, с использованием поблочной записи структур в файл.