Alt linux Программирование на языке С++ в среде Qt Creator Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк, О. В. Чеснокова, А. С. Чмыхало Москва alt linux 2015



Download 5,27 Mb.
Pdf ko'rish
bet98/193
Sana24.02.2022
Hajmi5,27 Mb.
#227496
1   ...   94   95   96   97   98   99   100   101   ...   193
Bog'liq
Book-qtC


Глава 7. Организация ввода-вывода в C++
В п. 7.1.1 и 7.1.2 были рассмотрены основные возможности форматированного
ввода-вывода. При использовании конструкций cin и cout фактически проис-
ходит ввод-вывод в текстовый файл. При вводе текстовым файлом является
клавиатура ПК, при выводе в качестве текстового файла выступает экран дис-
плея, cin и cout фактически являются именами потоков
3
, которые отвечают за
ввод и вывод в текстовый файл. Поэтому многие рассмотренные возможности
форматированного ввода-вывода будут использоваться и при обработке тексто-
вых файлов.
Существует два основных типа файлов: текстовые и двоичные. Файлы позво-
ляют пользователю считывать большие объёмы данных непосредственно с диска,
не вводя их с клавиатуры.
7.2
Работа с текстовыми файлами в C++
Текстовыми
называют файлы, состоящие из любых символов. Они органи-
зуются по строкам, каждая из которых заканчивается символом «конец строки».
Конец самого файла обозначается символом «конец файла». При записи инфор-
мации в текстовый файл, просмотреть который можно с помощью любого тек-
стового редактора, все данные преобразуются к символьному типу и хранятся в
символьном виде.
Для работы с файлами используются специальные типы данных, называемые
потоками
4
. Поток ifstream служит для работы с файлами в режиме чтения.
Поток ofstream служит для работы с файлами в режиме записи. Для работы с
файлами в режиме как чтения, так и записи служит поток iofstream.
В программах на C++ при работе с текстовыми файлами необходимо подклю-
чать библиотеки iostream и fstream.
Для того, чтобы записать данные в текстовый файл, необходимо:
1. Описать переменную типа ofstream.
2. Открыть файл с помощью функции open.
3. Вывести информацию в файл.
4. Закрыть файл.
Для того, чтобы считать данные из текстового файла, необходимо:
1. Описать переменную типа ifstream.
2. Открыть файл с помощью функции open.
3. Считать информацию из файла, при считывании каждой порции данных
необходимо проверять достигнут ли конец файла.
4. Закрыть файл.
7.2.1
Запись информации в текстовый файл
Для того, чтобы начать работать с текстовым файлом, необходимо описать
переменную типа ofstream. Например, с помощью оператора
3
Подробнее о текстовых потоках речь пойдёт в п. 7.2
4
Вообще говоря, потоки являются классами, которым будет посвящена специальная глава.
Программирование на языке С++ в среде Qt Creator


7.2. Работа с текстовыми файлами в C++
231
ofstream F
;
5
будет создана переменная F для записи информации в файл. На следующем
этапе файл необходимо открыть для записи. В общем случае оператор открытия
потока будет иметь вид:
F.open("file", mode);
Здесь F — переменная, описанная как ofstream, file — имя файла на диске,
mode
— режим работы с открываемым файлом.
Файл может быть открыт в одном из следующих режимов:
ios::in
— открыть файл в режиме чтения данных, этот режим является ре-
жимом по умолчанию для потоков ifstream;
ios::out
— открыть файл в режиме записи данных (при этом информация в
существующем файле уничтожается), этот режим является режимом по
умолчанию для потоков ofstream;
ios::app
— открыть файл в режиме записи данных в конец файла;
ios::ate
— передвинуться в конец уже открытого файла;
ios::trunc
— очистить файл, это же происходит в режиме ios::out;
ios::nocreate
— не выполнять операцию открытия файла, если он не существу-
ет
6
;
ios::noreplace
— не открывать существующий файл.
Параметр mode может отсутствовать, в этом случае файл открывается в режиме
по умолчанию для данного потока
7
.
После удачного открытия файла (в любом режиме) в переменной F будет хра-
ниться true, в противном случае false. Это позволит проверять корректность
операции открытия файла.
Открыть файл
(в качестве примера возьмём файл abc.txt) в режиме записи
можно одним из следующих способов:
//Первый способ.
o f s t r e a m F ;
F . open ( " a b c . t x t " , i o s : : out ) ;
//Второй способ,
//режим ios::out является режимом по умолчанию для потока ofstream
o f s t r e a m F ;
F . open ( " a b c . t x t " )
//Третий способ объединяет описание переменной типа поток
//и открытие файла в одном операторе
o f s t r e a m F( " a b c . t x t " , i o s : : out ) ;
После открытия файла в режиме записи будет создан пустой файл, в кото-
рый можно будет записывать информацию. Если нужно открыть файл, чтобы
в него что-либо дописать, то в качестве режима следует использовать значение
ios::app
.
После открытия файла в режиме записи, в него можно писать точно также,
как и на экран, только вместо стандартного устройства вывода cout необходимо
указать имя открытого для записи файла.
5
Далее термин «поток» будет использоваться для указания переменной, описанной как
ofstream
, ifstream, iofstream, а термин «файл» для указания реального файла на диске.
6
При открытии файла в режиме ios::in происходит как раз обратное, если файл не суще-
ствует, он создаётся
7
ios::in
— для потоков ifstream, ios::out — для потоков ofstream.
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


232
Download 5,27 Mb.

Do'stlaringiz bilan baham:
1   ...   94   95   96   97   98   99   100   101   ...   193




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish