Студопедия — Открыть файл
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Открыть файл






Ввод/вывод с файлами

C + + предоставляет следующие классы для выполнения вывода и ввода символов в / из файлов:

 

Ofstream: Stream класса писать на файлы

Ifstream: Stream класс для чтения файлов

Fstream: Stream классе читать и писать из / в файлы.

 

Эти классы получено непосредственно или косвенно от класса istream, и ostream. Мы уже использовали объектов, типы которых были эти классы: cin объект класса istream и cout является объектом класса ostream. Таким образом, мы уже с использованием классов, которые связаны с нашим потоков файла. И в самом деле, мы можем использовать наши потоки файлов таким же образом, мы уже привыкли использовать cin и cout, с той лишь разницей, что мы должны связать эти потоки с физическими файлами. Давайте посмотрим, например:

 

1 2 3 4 5 6 7 8 9 10 11 12 // basic file operations #include <iostream> #include <fstream> using namespace std;   int main () { ofstream myfile; myfile.open ("example.txt"); myfile << "Writing this to a file.\n"; myfile.close(); return 0; } [file example.txt] Написание этого в файле.


Этот код создает файл под названием example.txt и вставляет в него предложение таким же образом, мы привыкли делать с cout, но с использованием myfile поток файла вместо этого.

 

Но давайте идти шаг за шагом:

stream поток

Открыть файл

 

Первая операция обычно выполняется на объект одного из этих классов, чтобы связать его в реальный файл. Эта процедура известна как открыть файл. Открыть файл представлен в рамках программы по потоку объекта (экземпляра одного из этих классов, в предыдущем примере это был MYFILE), а любой вход или выход операция выполняется в этом потоке объектов будут применяться к физическим файл, связанный с ним.


Для того, чтобы открыть файл с потоком объекта мы используем его функции-члены open():

 

open (filename, mode);

 

Где имя файла с нулем в конце последовательности символов типа const char * (того же типа, что строковые литералы имеют представляющая имя файла, который будет открыт, и mode дополнительного параметра с комбинацией следующих флагов:

 

ios::in в открытых для операций ввода.
ios::out из открытого для вывода.
ios::binary двоичной Открыть в двоичном режиме.
ios::ate Ecли установить в исходное положение в конце файла. Если этот флаг не установлен на любое значение, начальное положение начало файла.
ios::app приложения все выходные операции выполняются в конце файла, добавление контента на текущее содержание файла. Этот флаг может быть использован только в потоках открытой для вывода только для операций.
ios::trunc TRUNC если файл открывается для вывода операций уже существовали и раньше, свое предыдущее содержание удален и заменен на новый.


Все эти флаги могут быть объединены с помощью оператора побитового OR (|). Например, если мы хотим, чтобы открыть файл example.bin в двоичном режиме, чтобы добавить данные, которые мы могли бы сделать это на следующий вызов функции-члена Open ():

 

1 2 ofstream myfile; myfile.open ("example.bin", ios::out | ios::app | ios::binary);

 

Каждый из open() функции-члены классов ofstream, ifstream and fstream имеет режим по умолчанию, который используется, если файл открывается без второго аргумента:

 

class режим по умолчанию параметр
ofstream ios::out
ifstream ios::in
fstream ios::in | ios::out


Для ifstream и ofstream classes, ios::in and ios::out втоматически и, соответственно, предполагается, даже если режим, который не включает их передается в качестве второго аргумента в open() функции-члена.

 

Значение по умолчанию применяется только в том случае, если функция вызывается без указания значения для параметра режима. Если функция вызывается с любым значением этого параметра в режиме по умолчанию переопределен, не сочетается.


Файл потоков открывается в двоичном режиме выполнять операции ввода и вывода независимо от формата соображений. Номера для двоичных файлов, известны как текстовые файлы, а также некоторые переводы могут возникнуть в результате форматирования некоторых специальных символов (например, строки и символы возврата каретки).

 

С первой задачей, которая выполняется на объект потока файлов, как правило, чтобы открыть файл, эти три класса включает конструктор, который автоматически вызывает open() функции-члены и имеет точно такие же параметры, как пользователя. Таким образом, мы могли бы также заявили предыдущий объект MYFILE и провели ту же операцию открытия в нашем предыдущем примере, написав:

 

  ofstream myfile ("example.bin", ios::out | ios::app | ios::binary);


Объединение строительных объектов и открытия потока в одном заявлении. Обе формы, чтобы открыть файл действительны и тому подобное.

 

Чтобы проверить, если файл потока было успешное открытие файла, вы можете это сделать, позвонив по телефону член is_open () без аргументов. Эта функция возвращает логическое значение истины в том случае, действительно, объект потока связан с открытым файлом, или ложное в противном случае:

 

bool value of true in the case that indeed the stream object is associated with an open file, or false otherwise:

 

  if (myfile.is_open()){/ * в порядке, продолжить вывод * /}

 



 

 







Дата добавления: 2015-08-12; просмотров: 340. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Характерные черты немецкой классической философии 1. Особое понимание роли философии в истории человечества, в развитии мировой культуры. Классические немецкие философы полагали, что философия призвана быть критической совестью культуры, «душой» культуры. 2. Исследовались не только человеческая...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит...

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

Виды и жанры театрализованных представлений   Проживание бронируется и оплачивается слушателями самостоятельно...

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия