Добавил:
t.me Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 семестр / Работа с текстовыми файлами.pptx
Скачиваний:
4
Добавлен:
26.02.2023
Размер:
116.69 Кб
Скачать

Работа с текстовыми файлами

Ввод –вывод в С++. Основные положения

1.В С++ ввод/вывод потоковый , буферизованный

2.Поток –последовательность байтов, которая не зависит от устройства.

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

следит операционная система.

4.Задача программиста установить связь между потоком данных, который в программе имеет логическое имя и конкретным

устройством, которое показывает физическое нахождение данных.

5.В зависимости от направления обмена потоки данных делятся на входные ,выходные (файловые) и стандартные. Стандартные относятся к дисплею и клавиатуре. Поток считается файловым, если он относится к внешнему накопителю.

6.В С++ реализованы два вида потоков – процедурный, который обслуживается библиотекой stdio.h и объектно-ориентированный, который обслуживается библиотекой iostream.h

ФАЙЛ – это именованный набор данных, хранящийся на внешней памяти.

В С++ два типа файлов: текстовые и двоичные(бинарные)

Текстовые файлы состоят из строк. Доступ к строкам последовательный друг за другом.

Бинарные файлы –информация хранится во внутренней форме представления, их нельзя посмотреть в текстовом редакторе. Их преимущество в том, что при чтении нет преобразования во внутреннюю форму представления и обратно. Кроме того, в бинарных файлах возможен прямой доступ к информации путем установки текущей

позиции указателя(курсора) доступа при помощи специальной функции, которая устанавливает курсор доступа в нужную позицию.

Курсор доступа для бинарных файлов

Введём понятие «позиция доступа».

f

. . .

 

позиция

доступа

Основные операции работы с файлами (1)

1.Объявить (описать) файловую переменную (имя файла в программе)

для вывода в него ofstream out("name-of-file”);

для ввода из него ifstream inf("name-of-file");

Основные операции работы с файлами(2)

2. Открыть файл для записи или считывания out.open ("my_fil.txt");//открытие для записи inf.open("my_fil.txt");//открыть для считывания

3.Закрыть по окончании работы с файлом out.close();//закрыли по окончании записи inf.close();// закрыли после окончания считывания

Файлы –это потоки для внешних носителей, для работы с ними используют библиотеки ifstream,

ofstream .Библиотека ifstream обслуживает чтение из файла,а ofstream запись в файл

Операторы записи в поток-текстовые файлы.

Класс для записи в файл ofstream:

// имя файла

Файловая переменная-имя файла

в программе

ofstream output(“my1.txt”);

Имя файла во внешней

output << "hello" << endl;

памяти

 

Для проверки того , что записалось в файл, откроем его и прочитаем содержимое:

ifstream input(“my1.txt”);

if (input) { Открыли для чтения тот же файл

string line;

while (getline(input, line)) { cout << line << endl; } }

Пример 1(текстовые файлы)

В файл o_file с клавиатуры вводится информация о студентах, затем этот файл используется как входной i_file и из него информация выводится на экран.

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

<<- запись в поток <<- чтение из потока

#include <fstream>//подключение библиотеки

#include <iostream> using namespace std; struct student{

char fio[15];

int god;//возраст }el,el1;

Продолжение –запись в файл

int main(void){

ifstream i_file;//файл из которого читают ofstream o_file;//файл , в который пишут

o_file.open("my_fil.txt");//открытие для записи в него for (int i=0;i<3;i++)

{cout<<"imj\n"; cin>>el.fio;

cout<<"vozrast\n"; cin>>el.god; o_file<<el.fio<<endl;//запись по полям в файл o_file o_file<<el.god<<endl;//

}

o_file.close();//закрыли по окончании записи

// введена информация о трех студентах в файл с именем //my_fil.txt,он расположен в той же папке(директории), где //находится эта программа

Продолжение 2-чтение из файла

i_file.open("my_fil.txt");//файл открыли

//как входной читаем из него как писали по полям и выводим на //экран

for(int i=0;i<3;i++)

{ i_file>>el1.fio; cout<<"imj= "; cout<<el1.fio<<endl; i_file>>el1.god;cout<<"vozrast= "; cout<<el1.god<<endl;

}

i_file.close();//закрыли после работы return 0;}