Читаем С++ для "чайников" . полностью

      setlocale ( LC_ALL , ".1251" ) ; /* печать русских текстов */

        fn( cout ) ;

        system( "PAUSE" ) ; return 0 ;

    }

Программа передаёт функции fn( ) поток cout. Функция использует оператор operator<<( ). Сначала С++ определит, что левый аргумент имеет тип ostream, а правый — тип char*. Вооружённый этими знаниями, он найдёт прототип функции operator<<( ostream& , char* ) в заголовочном файле iostream. Затем С++ вызовет функцию вставки в поток для char*, передавая ей строку "Меня зовут Стефан\n" и объект cout в качестве аргументов. Другими словами, он вызовет функцию operator<<( cout , "Меня зовут Стефан\n" ). Функция для вставки char* в поток, которая является частью стандартной библиотеки С++, выполнит необходимый вывод.

Но откуда компилятору известно, что cout является объектом класса ostream? Этот и ещё несколько глобальных объектов объявлены в файле iostream.h ( их список приведён в табл. 24.1 ). Эти объекты автоматически конструируются при запуске программы, до того как main( ) получает управление.

    Таблица 24.1. Стандартные потоки ввода-вывода

    _________________

    Объект — Класс — Назначение

    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

    cin — istream — Стандартный ввод

    cout — ostream — Стандартный вывод

    cerr — ostream — Стандартный небуферизованный вывод сообщений об ошибках

    clog — ostream — Стандартный буферизованный вывод сообщений об ошибках

    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ 

<p id="chapter24.2"><strong>►Знакомство с подклассами fstream...278</strong></p>

Подклассы ofstream, ifstream и fstream объявлены в заголовочном файле fstream.h и обеспечивают потоки ввода-вывода в дисковые файлы. Эти три класса предоставляют множество функций для управления вводом и выводом, многие из которых наследуются от ostream и istream. Полный список этих функций вы можете найти в документации к компилятору, а здесь я приведу только несколько из них, чтобы вы могли с чего-то начать. 

_________________

278 стр. Часть 5. Полезные особенности

Класс ofstream, который используется для файлового вывода, имеет несколько конструкторов; наиболее часто применяется следующий:

    ofstream::ofstream( char* pFileName ,

                       int mode = ios::out ,

                       int prot = filebuff::openprot ) ;

Первый аргумент этого конструктора — указатель на имя открываемого файла. Второй и третий аргументы определяют, как именно должен быть открыт файл. Корректные значения аргумента mode приведены в табл. 24.2, a prot — в табл. 24.3. Эти значения являются битовыми полями, к которым применяется оператор побитового ИЛИ ( классы ios и filebuff — родительские по отношению к ostream ).

«Выражение ios::out представляет статический член-данные класса ios

[Советы]

    Таблица 24.2. Значения аргумента mode в конструкторе класса ofstream

    _________________

    Флаг — Назначение

    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

    ios::app — Дописывать в конец файла. Вернуть ошибку, если файл не существует

    ios::ate — Дописывать в конец файла, если он существует

    ios::in — Открыть файл для ввода ( подразумевается для istream )

    ios::out — Открыть файл для вывода ( подразумевается для ostream )

    ios::trunc — Обрезать файл до нулевой длины, если он существует ( используется по умолчанию )

    ios::nocreate — Если файла не существует, вернуть сообщение об ошибке

    ios::noreplace — Если файл существует, вернуть сообщение об ошибке

    ios::binary — Открыть файл в бинарном режиме ( альтернатива текстовому режиму )

    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

    Таблица 24.3. Значения аргумента prot в конструкторе класса ofstream

    _________________

    Флаг — Назначение

    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Перейти на страницу:

Все книги серии Для чайников

Похожие книги

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

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Язык программирования Euphoria. Справочное руководство
Язык программирования Euphoria. Справочное руководство

Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

Коллектив авторов

Программирование, программы, базы данных