Язык C++ не обеспечивает средств для ввода/вывода. Ему это и не нужно; такие средства легко и элегантно можно создать с помощью самого языка. Описанная здесь стандартная библиотека потокового ввода/вывода обеспечивает гибкий и эффективный с гарантией типа метод обработки символьного ввода целых чисел, чисел с плавающей точкой и символьных строк, а также простую модель ее расширения для обработки типов, определяемых пользователем. В этой главе описывается сама библиотека, некоторые способы ее применения и методы, которые использовались при ее реализации.

Статьи → Потоки → Эффективность

<!--StartFragment --> Можно было бы ожидать, что раз ввод/вывод определен с помощью общедоступных средств языка, он будет менее эффективен, чем встроенное средство.

На самом деле это не так. Для действий вроде \"поместить символ в поток\" используются inline-функции, единственные необходимые на этом уровне вызовы функций возникают из-за переполнения сверху и снизу.
Опубликовал admin
23 Мар, Вторник 2004г.

Статьи → Потоки → Буферизация

<!--StartFragment -->

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

Опубликовал admin
23 Мар, Вторник 2004г.

Статьи → Потоки → Работа со Строками

<!--StartFragment -->

Можно осуществлять действия, подобные вводу/выводу, над символьным вектором, прикрепляя к нему istream или ostream. Например, если вектор содержит обычную строку, завершающуюся нулем, для печати слов из этого вектора можно использовать приведенный выше копирующий цикл:

Опубликовал admin
23 Мар, Вторник 2004г.


RSS-материал

Программирование для чайников.