Презентация на тему: Лекция 5. С/ C++. Работа с файлами

Лекция 5. С/ C++. Работа с файлами.
План.
Виды файлов
Лекция 5. С/ C++. Работа с файлами.
Файловая система С/С++
Объявление файловой переменной
Открытие файла
Допустимые значения параметра режим
Лекция 5. С/ C++. Работа с файлами.
Примеры. Открытие файла.
Примеры. Проверка правильности открытия файла.
Запись в файл. Запись символов.
Запись в файл. Запись строк.
Запись в файл. Запись блоков данных любого типа.
Запись в файл. Функция fprintf
Чтение из файла. Чтение символа.
Чтение из файла. Чтение строки.
Чтение из файла. Чтение блоков данных любого типа.
Запись в файл. Функция fscanf
Закрытие файла
Дополнительные функции работы с файлами. Функция feof.
Пример. Копирование содержимого файла в другой файл
Лекция 5. С/ C++. Работа с файлами.
Лекция 5. С/ C++. Работа с файлами.
Дополнительные функции работы с файлами.
Дополнительные функции работы с файлами.
Дополнительные функции работы с файлами. Функция fseek
Функция fseek
Лекция 5. С/ C++. Работа с файлами.
Лекция 5. С/ C++. Работа с файлами.
1/30
Средняя оценка: 4.7/5 (всего оценок: 21)
Код скопирован в буфер обмена
Скачать (102 Кб)
1

Первый слайд презентации: Лекция 5. С/ C++. Работа с файлами

Визуальное программирование. Ст. преп. М.А. Сокольская

Изображение слайда
2

Слайд 2: План

2 2 План. Виды файлов. Файловые переменные. Установка связи с файлом. Чтение из файла. Запись в файл. Закрытие файла. Дополнительные функции работы с файлами

Изображение слайда
3

Слайд 3: Виды файлов

3 Виды файлов Файл с С/С++ - это именованный объект, хранящий данные (программа или любая другая информация) на каком-либо носителе. Файл в С- это что угодно (файл, дисплей, принтер и т.д.) Виды файлов : текстовые – последовательность символов; бинарные – последовательность байт, поддерживает позиционирование курсора файла, при чтении или записи в файл курсор смещается на 1 позицию.

Изображение слайда
4

Слайд 4

4 Выполняя операцию открытия файла программист связывает конкретный файл с потоком. Поток – некоторое виртуальное логическое устройство, одинаковое для любого типа файлов. При закрытии файла его связь с потоком разрывается. Если файл был открыт для записи, его содержимое записывается на внешнее устройство

Изображение слайда
5

Слайд 5: Файловая система С/С++

5 Файловая система С/С++ Файловая система языка С предназначена для работы с самыми разнообразными устройствами. Даже если какое-то устройство сильно отличается от других, буферизованная файловая система все равно представит его в виде логического устройства (потока). Файловая система состоит из нескольких функций, для использования большинства из них необходим заголовочный файл stdio.h

Изображение слайда
6

Слайд 6: Объявление файловой переменной

6 Объявление файловой переменной Первый шаг при работе с файлами – объявление файловой переменной Синтаксис : FILE *имя_файловой_переменной; Например: FILE *myfile; Файловая переменная – это звено, соединяющее все компоненты системы ввода-вывода, описывает конкретный файл и используется соответствующим потоком при выполнении операций ввода-вывода.

Изображение слайда
7

Слайд 7: Открытие файла

7 Открытие файла Осуществляется функцией: fopen ( имя_файла, режим_открытия ) ; Прототип функции: FILE *fopen (const char * имя_файла, const char * режим ); Параметр имя_файла – строка, задающая допустимое имя файла и, при необходимости, путь к нему. Параметр режим определяет назначение файла.

Изображение слайда
8

Слайд 8: Допустимые значения параметра режим

8 Допустимые значения параметра режим Значение Смысл r Открыть текстовый файл для чтения w Открыть текстовый файл для записи a Добавить записи в конец текстового файла rb Открыть бинарный файл для чтения wb Открыть бинарный файл для записи ab Добавить записи в конец бинарного файла r+ Открыть текстовый файл для чтения и записи

Изображение слайда
9

Слайд 9

9 Значение Смысл w+ Открыть текстовый файл для чтения и записи a+ Добавить записи в конец текстового файла или создать текстовый файл для чтения и записи r+b Открыть бинарный файл для чтения и записи w+b Открыть бинарный файл для чтения и записи a+b Добавить записи в конец текстового файла или создать текстовый файл для чтения и записи

Изображение слайда
10

Слайд 10: Примеры. Открытие файла

10 Примеры. Открытие файла. #include <stdio.h> int main () { FILE *myfile; myfile = fopen (“output.txt”, “w”); return 0; }

Изображение слайда
11

Слайд 11: Примеры. Проверка правильности открытия файла

11 Примеры. Проверка правильности открытия файла. #include <stdio.h> int main () { FILE *myfile; if ((myfile = fopen (“output.txt”, “w”) == NULL) { printf(“ Не могу открыть файл! \n”); exit(1); } return 0; }

Изображение слайда
12

Слайд 12: Запись в файл. Запись символов

12 Запись в файл. Запись символов. Для записи символа в файл используется функция: putc ( символ, файловая_переменная ); Прототип функции: int putc (int символ, FILE * фп ) ; putc (‘a’, myfile); / *запись в файл, связанный с файловой переменной myfile, символа а.* /

Изображение слайда
13

Слайд 13: Запись в файл. Запись строк

13 Запись в файл. Запись строк. Для записи строки в файл используется функция: fputs ( строка, файловая_переменная ); Прототип функции: int fputs (const char * строка, FILE * фп ) ; Функция записывает в заданный поток строку, определяемую параметром строка. putc (“ Привет ”, myfile); / *запись в файл, связанный с файловой переменной myfile, строки «Привет».* /

Изображение слайда
14

Слайд 14: Запись в файл. Запись блоков данных любого типа

14 Запись в файл. Запись блоков данных любого типа. Для записи в файл блоков данных используется функция: fwrite ( переменная, количество_байт, количество_блоков, файл_перем ); Например: double d=3.14; fwrite (&d, sizeof(double), 1, myfile) ; Запись в файл одного вещественного числа.

Изображение слайда
15

Слайд 15: Запись в файл. Функция fprintf

15 Запись в файл. Функция fprintf Функция fprintf аналогична функции printf, но работает с файлами. fprintf ( фп, управляющая строка, параметры ); Например: fprintf (myfile, “%c %d”, ch, t); Запись в файл myfile значений двух переменных разных типов.

Изображение слайда
16

Слайд 16: Чтение из файла. Чтение символа

16 Чтение из файла. Чтение символа. Для чтения символа из файла используется функция: getc ( файловая_переменная ); Прототип функции: int getc (FILE * фп ) ; char ch; ch = getc (myfile); / *чтение символа из файла, связанного с файловой переменной myfile * /

Изображение слайда
17

Слайд 17: Чтение из файла. Чтение строки

17 Чтение из файла. Чтение строки. Для записи строки в файл используется функция: fgets ( строка, длина, файловая_переменная ); Прототип функции: char *fgets (char * строка, int длина, FILE * фп ) ; Функция читает из заданного потока строку, в параметр строка, пока не обнаружит символ перехода на другую строку или пока не прочитает длина-1 символ. fgets (str1, 50, myfile); / *чтение из файла, связанного с файловой переменной myfile, строки длиной 50 символов.* /

Изображение слайда
18

Слайд 18: Чтение из файла. Чтение блоков данных любого типа

18 Чтение из файла. Чтение блоков данных любого типа. Для чтения из файла блоков данных используется функция: fread ( переменная, количество_байт, количество_блоков, файл_перем ); Например: double d; fread (&d, sizeof(double), 1, myfile) ; Чтение из файла одного вещественного числа.

Изображение слайда
19

Слайд 19: Запись в файл. Функция fscanf

19 Запись в файл. Функция fscanf Функция fscanf аналогична функции scanf, но работает с файлами. fscanf ( фп, управляющая строка, параметры ); Например: fscanf (myfile, “%c %d”, ch, &t); Чтение из файла myfile значений двух переменных разных типов.

Изображение слайда
20

Слайд 20: Закрытие файла

20 Закрытие файла Для закрытия потока, открытого функцией fopen используется функция fclose ( файловая_переменная ); Функция записывает все данные, оставшиеся в потоке в файл и закрывает его; освобождает управляющий блок файла, связанного с потоком, позволяя использовать его повторно. Например: fclose (myfile);

Изображение слайда
21

Слайд 21: Дополнительные функции работы с файлами. Функция feof

21 Дополнительные функции работы с файлами. Функция feof. Для однозначного определения достигнут или нет конец файла в С предусмотрена функция eof. Прототип функции: int eof (FILE * файловая_переменная ); Обнаружив конец файла функция возвращает истинное значение, в противном случае – 0. Чтение из файла, пока не найден конец файла, может быть организовано следующим образом: while (! feof (myfile)) ch = getc (myfile);

Изображение слайда
22

Слайд 22: Пример. Копирование содержимого файла в другой файл

22 Пример. Копирование содержимого файла в другой файл #include<stdio.h> #include<stdlib.h> int main() { FILE *in, *out; char ch; if ((in = fopen (“C:\input.txt”, “rb”))==NULL) { printf (“ Не могу открыть файл! \n”); exit(1); }

Изображение слайда
23

Слайд 23

23 if ((out = fopen (“C:\output.txt”, “wb”))==NULL) { printf (“ Не могу открыть файл! \n”); exit(1); } // копируем файл

Изображение слайда
24

Слайд 24

24 while (! feof (in)) { ch = getc (in); if (! feof (in)) putc (ch, out); } fclose (in); fclose (out); return 0; }

Изображение слайда
25

Слайд 25: Дополнительные функции работы с файлами

25 Дополнительные функции работы с файлами. Функция rewind устанавливает курсор в начало файла («перематывает» файл в начало). Прототип: void rewind(FILE * файловая_переменная ); Функция ferror определяет, возникла ли ошибка при работе с файлом. Прототип: int ferror (FILE * файловая_переменная ); Функция возвращает истину, если при выполнении операции возникла ошибка, и ложь в противном случае.

Изображение слайда
26

Слайд 26: Дополнительные функции работы с файлами

Функция remove удаляет указанный файл. Прототип: int remove(const char * имя_файла ); Если функция выполнена успешно, то она возвращает 0, иначе – ненулевое значение. Например: remove (“C:\myf.txt”); 26

Изображение слайда
27

Слайд 27: Дополнительные функции работы с файлами. Функция fseek

27 27 Дополнительные функции работы с файлами. Функция fseek Функция fseek устанавливает курсов файла в заданную позицию. Используется с файлами, допускающими произвольный доступ (бинарными). Прототип: int fseek (FILE * фп, long int смещение, int начало ); фп – файловая переменная Смещение – количество байт, на которое надо переместить курсор. Начало – параметр, задающий точку начала перемещения: SEEK_SET, SEEK_CUR, SEEK_END.

Изображение слайда
28

Слайд 28: Функция fseek

Функция возвращает 0, если смещение выполнено успешно и ненулевое значение при неудаче. Пример. Перемещение курсора в заданную позицию и отображение байта, записанного в этом месте. #include<stdio.h> #include<stdlib.h> int main() { FILE *myfile; 28

Изображение слайда
29

Слайд 29

if ((myfile=fopen(“C:\output.dat”, “rb”)) == NULL) { printf(“ Не могу открыть файл!\ n”); exit(1); } if (fseek(myfile), atol(“C:\output.dat”), SEEK_SET)) { printf (“ Ошибка. \n”); exit (1); } 29

Изображение слайда
30

Последний слайд презентации: Лекция 5. С/ C++. Работа с файлами

printf(“ В позиции %ld записан символ %c. \n”, atol(“C:\output.dat”), getc (myfile)); fclose(myfile); return 0; } 30

Изображение слайда