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

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

Открыть файл





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

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; просмотров: 362. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

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

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

Словарная работа в детском саду Словарная работа в детском саду — это планомерное расширение активного словаря детей за счет незнакомых или трудных слов, которое идет одновременно с ознакомлением с окружающей действительностью, воспитанием правильного отношения к окружающему...

Правила наложения мягкой бинтовой повязки 1. Во время наложения повязки больному (раненому) следует придать удобное положение: он должен удобно сидеть или лежать...

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

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