8.3.3 Открытие Файлов

8.3.3 Открытие Файлов

Точные детали того, как открываются и закрываются файлы, различаются в разных операционных системах и здесь подробно не описываются. Поскольку после включения «stream.h» станвятся доступны cin, cout и cerr, во многих (если не во всех) программах не нужно держать код для открытия файлов. Вот, онако, программа, которая открывает два файла, заданные как параметры командной строки, и копирует первый во второй:

#include «stream.h»

void error(char* s, char* s2) (* cerr «„ s «« " " «« s2 «« « “; exit(1); *)

main(int argc, char* argv[]) (* if (argc != 3) error(«неверное число параметров»,"");

filebuf f1; if (f1.open(argv[1],input) == 0) error(«не могу открыть входной файл»,argv[1]); istream from( amp;f1);

filebuf f2; if (f2.open(argv[2],output) == 0) error(«не могу создать выходной файл»,argv[2]); ostream to( amp;f2);

char ch; while (from.get(ch)) to.put(ch);

if (!from.eof() !! to.bad()) error(«случилось нечто странное»,""); *)

Последовательность действий при создании ostream для именованного файла та же, что используется для стандартных потоков: (1) сначала создается буфер (здесь это делается поредством описания filebuf); (2) затем к нему подсоединяется файл (здесь это делается посредством открытия файла с помощью функции filebuf::open()); и, накрнец, (3) создается сам

ostream с filebuf в качестве параметра. Потоки ввода обрабтываются аналогично.

Файл может открываться в одной из двух мод:

enum open_mode (* input, output *);

Действие filebuf::open() возвращает 0, если не может окрыть файл в соответствие с требованием. Если пользователь пытается открыть файл, которого не существует для output, он будет создан.

Перед завершением программа проверяет, находятся ли птоки в приемлемом состоянии (см. #8.4.2). При завершении программы открытые файлы неявно закрываются.

Файл можно также открыть одновременно для чтения и запси, но в тех случаях, когда это оказывается необходимо, пардигма потоков редко оказывается идеальной. Часто лучше расматривать такой файл как вектор (гигантских размеров). Можно определить тип, который позволяет программе обрабатывать файл как вектор, см. Упражнения 8– 10.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Открытие документа

Из книги Adobe Photoshop CS3 автора Завгородний Владимир

Открытие документа Открыть документ Photoshop или любой другой растровый файл можно с помощью команды File ? Open (Файл ? Открыть). Окно команды открытия, как и окно команды сохранения, может отображаться в двух видах: в стиле Adobe или в стиле, приближенном к стандарту Windows (рис. 7.9). В


Открытие документа

Из книги Adobe InDesign CS3 автора Завгородний Владимир

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


Открытие рисунков

Из книги AutoCAD 2009 для студента. Самоучитель автора Соколова Татьяна Юрьевна

Открытие рисунков Программа AutoCAD по умолчанию записывает внутреннее представление рисунка в файл с расширением DWG. Кроме рисунка файл содержит ряд параметров, определяющих значения переключателей режимов шага SNAP, сетки GRID, ортогонального режима ORTHO; принятые единицы


13.5. Открытие документов

Из книги Самоучитель работы на компьютере автора Колисниченко Денис Николаевич

13.5. Открытие документов Для открытия документа используется команда меню Файл, Открыть. Ей соответствует комбинация клавиш. В результате выполнения данной команды откроется окно Открытие документа, в котором вы сможете выбрать файл (рис. 132). Рис. 132. Открытие


Открытие и создание файлов

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Открытие и создание файлов После создания объекта класса CFile можно открыть файл, вызвав метод Open. Методу Open надо указать путь к открываемому файлу и режим его использования. Прототип метода Open имеет следующий вид:virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL);В качестве


Открытие SCM

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Открытие SCM Для создания службы требуется отдельный процесс, выступающий в качестве "администратора" и играющий во многом ту же роль, что и программа JobShell, которая использовалась в главе 6 для запуска задач. Первый шаг состоит в открытии SCM и получении дескриптора, который


10.1.1. Открытие и закрытие файлов

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

10.1.1. Открытие и закрытие файлов Метод класса File.new, создающий новый объект File, также открывает файл. Первым параметром, естественно, является имя файла.Необязательный второй параметр называется строкой указания режимам он говорит, как нужно открывать файл — для чтения,


Открытие файла

Из книги Справочник по PHP автора

Открытие файла fopenОткрывает файл и привязывает его к дескриптору.Синтаксис:int fopen(string $filename, string $mode, bool $use_include_path=false)Открывает файл с именем $filename в режиме $mode и возвращает дескриптор открытого файла. Если операция "провалилась", то функция возвращает false. Необязательный


11.2.3. Открытие файлов в файловой системе

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

11.2.3. Открытие файлов в файловой системе Хотя Linux предусматривает множество типов файлов, обычные файлы используются наиболее часто. Программы, конфигурационные файлы, файлы данных — все они подпадают под это определение, и многие приложения не могут (явно) использовать


12.5. Повторное открытие журнальных файлов

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

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


Высокоуровневое открытие файлов

Из книги Программирование КПК и смартфонов на .NET Compact Framework автора Климов Александр П.

Высокоуровневое открытие файлов Функции открытия потока возвращают указатель на тип FILE (этот указатель называют также указателем потока), этот указатель используется при дальнейших обращениях к


Открытие файлов

Из книги Как найти и скачать в Интернете любые файлы автора Райтман М. А.

Открытие файлов Файл должен быть открыт функциями open, sopen или creat до выполнения первой операции ввода или вывода с использованием функций нижнего уровня для этого файла.Файл может быть открыт для чтения, записи, или для чтения и записи, может быть открыт в текстовом или в


Открытие файлов по умолчанию

Из книги Linux программирование в примерах автора Роббинс Арнольд

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


Открытие и загрузка файлов по magnet-ссылкам

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

Открытие и загрузка файлов по magnet-ссылкам Но программа DC++ имеет еще одно неоспоримое преимущество: вы можете переслать свой файл конкретному пользователю. Вернее, предоставить возможность скачать вашему знакомому нужный ему в данный момент файл. Согласитесь, крайне


4.4.2. Открытие и закрытие файлов

Из книги автора

4.4.2. Открытие и закрытие файлов Новые дескрипторы файлов получают (наряду с другими источниками) в результате системного вызова open(). Этот системный вызов открывает файл для чтения или записи и возвращает новый дескриптор файла для последующих операций с этим файлом. Мы


Б.1.1. Открытие файла

Из книги автора

Б.1.1. Открытие файла Чтобы открыть файл и получить дескриптор для работы с ним, необходимо вызвать функцию open(). В качестве аргументов она принимает строку с путевым именем файла и флаги, определяющие способ открытия. С помощью функции open() можно также создать новый файл.