Ввод и вывод в языках C и C++. Ввод/вывод файлов в языке C (общие сведения)

   
На этом шаге мы приведем общие сведения об организации взаимодействия программы с файлом, а также рассмотрим особенности открытия файла.

   
Ввод/вывод в языках С и C++ осуществляется функциями из стандартных библиотек. Чтобы ими воспользоваться, в программу надо
включить ссотвествующие h-файлы: stdio.h, stdlib.h, conio.h и др. Главная библиотека stdio.h. В ней
содержатся основные функции ввода/вывода, в том числе обеспечивающие стандартный ввод/вывод.
Ввод/вывод файлов в языке C

   
Чтобы работать с файлом, его сначала следует открыть: связать со специальной структурой с именем FILE, которая описана в библиотеке
stdio.h и в которой задаются характеристики файла (размер буфера ввода/вывода, состояние файла, последняя прочитанная запись и т. п.).
Связь эта выполняется помощью функции fopen(), которая тоже входит в библиотеку stdio.h и возвращает указатель на структуру FILE.
Поэтому в программе прежде всего следует задать указатель на структуру FILE (например, FILE *fp;), а затем записать оператор собственно открытия файла:

  fp = fopen (имя файла, способ открытия файла);

   
Функция открытия имеет два параметра:

  • имя открываемого файла и
  • способ открытия файла.

   
Способ открытия файла определяет, как будет пользователь работать с файлом: читать его, писать в него или делать что-то еще.
Рассмотрим способы открытия файла:

  • r - файл открывается только для чтения из него;
  • w - файл открывается только для записи в него (если файл не существует, он создается);
  • a - файл открывается для дозаписи информации в конец файла. Если файл не существует, он создается для записи в него;
  • r+ - существующий файл открывается для обновления: чтения и записи;
  • w+ - создается новый файл для работы в режиме обновления: такой файл можно будет и читать, и записывать в него;
  • а+ - файл открывается для дозаписи информации в конец файла. Если файл не существует, он создается. Если существует, то
    открывается для дозаписи в конец файла.

   
Если по какой-либо причине открытия файла не произошло (например, задано имя несуществующего файла), то функция fopen() возвращает
значение NULL. Поэтому открытие файла следует осуществлять так:

  if ((fp = fopen (name,mode)) == NULL)
    {операторы обработки ошибки открытия} 
  остальные операторы программы

   
После того как программа с данным файлом отработала, следует "отвязать" структуру FILE от отработавшего файла или, как говорят,
закрыть файл. Это осуществляет функция fclose(fp). Она не только разрывает связь структуры с файлом, но и записывает в
память оставшееся содержимое буфера ввода/вывода, через который собственно и организуется ввод/вывод. Только после закрытия файла с ним
можно выполнять какие-либо действия, т. к. он "свободен", "не привязан". Например, его можно удалить или заново открыть в другом режиме открытия и т. д.

   
На следующем шаге мы рассмотрим основные функции для работы с файлами.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий