Лабораторный практикум по основам языка C/С++ |
Тема 9.1. Работа с файлами средствами языка С
С точки зрения языка C
, любой файл представляет собой
последовательный поток байтов. Какждый файл заканчивается специальным маркером конца файла.
Когда файл открывается, то ему ставится в соответствие поток ввода или вывода,
в зависимости от того, для каких целей (можно также сказать с какими опциями)
он был открыт.
В начале работы программы открываются три файла и связанные с ними потоки:
стандартный ввод (stdin
), стандартный вывод (stdout
)
и стандартная ошибка (stderr
). Потоки обеспечивают каналы передачи данных
между файлами и программами. Открытый файл возвращает указатель на структуру
FILE
, определенную в <stdio.h>
Стандартная библиотека поддерживает многочисленные функции чтения данных из файла и записи данных в файл.
fopen(имя файла, опция открытия)
&ndash открытие файла (w
- на запись;r
- на чтение,а
- на добавление;w+
- создается файл для чтения и записи;r+
- открывается файл для чтения и записи,а
- открывается файл для чтения и записи с помещением маркера текущей позиции в файле в конец файла).fclose(указатель на файл)
&ndash закрытие файла.feof(указатель на файл)
&ndash возвращаетtrue
если достигнут конец файла.fgetc(указатель на файл)
– считывает из файла один символ. Например,fgetc(stdin)
считает один символ из стандартного потока, что эквивалентно использованию функцииgetchar()
.fputc(символ, указатель на файл)
&ndash запись одного символа в файл. Например,fputc('a',stdout)
эквивалентноputchar('a')
fgets(указатель на файл)
– считывает из файла строку символов.fputs(строка, указатель на файл)
&ndash запись строки в файл.fscanf(указатель на файл-поток, строка формата ввода)
– считывание из файла.fprintf(указатель на файл-поток,строка формата вывода, список переменных для вывода)
&ndash запись в файл.rewind(указатель на файл)
– переместить указатель текущей позиции в файле на начало.fwrite(адрес первой ячейки памяти, размер одного блока, количество блоков, указатель на файл) – вывести в файл указанное количество блоков в файл.
fread(адрес первой ячейки памяти, размер одного блока, количество блоков, указатель на файл) – прочитать из файла указанное количество блоков в файл.
Пример программы, в которой открывается файл на запись и в него выводятся данные клиента банка
Пример программы, с использованием поблочной записи структур в файл.