- •Void unsetf( fmtflags флаги );
- •Iostream& manip_name (iostream& stream){
- •If (stream.Rdstate() & ios::eofbit)…
- •Istrea& putback( char ch );
- •Istream& get ( char& ch );
- •Istream& get (char* buf, streamsize num);
- •Istream& get (char* buf, streamsize num, char delim);
- •Istream& getline (char* buf, streamsize num);
- •Istream& getline (char* buf, streamsize num, char delim);
- •Int_type peek();
- •Istream& read(char* buf, streamsize num);
- •Istream& seekg( off_type offset, seekdir origin);
- •Istream& seekg( pos_type pos);
- •Istrstream::istrstream( const char* buf);
- •Istrstream::istrstream( const char* buf, streamsize size);
- •Int main(){
Istrstream::istrstream( const char* buf);
Istrstream::istrstream( const char* buf, streamsize size);
Особенности:
buf - указатель на символьный массив, который используется как источник данных
содержимое buf должно завершаться нулевым байтом
size - число используемых символов строки
/* пример ниже для ввода и вывода */
3.18
Создание буферизированного потока вывода.
ostrstream::ostrstream (char* buf, streamsize size, openmode mode = ios::out);
ostrstream::ostratream();
Особенности:
buf - указатель на массив, который используется как приемник данных
size - размер символьного массива ( если массив будет переполнен, то возникнет ошибка )
mode - способ открытия
при использовании конструктора по умолчанию поток связан с динамическим массивом ( растет автоматически )
Функция pcount().
streamsize pcount();
Особенности:
метод буферизированного потока
предназначена для определения количества символов, записанных в символьный массив
возвращает количество записанных символов с учетом нулевого байта
Доступ к динамическому массиву.
char* str();
Особенности:
метод буферизированного потока
предназначена для заморозки ( блокировки для вывода ) динамического массива и открытия доступа к его элементам
возвращает указатель на байтовый массив
Функция freeze().
void freeze(bool action = true);
Особенности:
метод буферизированного потока
предназначена для управления доступом к динамическому массиву
true - заморозка массива
false - разморозка массива
3.19
Бинарный буферизированный ввод-вывод.
Массивы, связанные с буферизированными потоками могут содержать бинарную информацию.
Особенности:
для распознавания конца массива используется метод eof()
для чтения и записи символов используются методы get() , put()
для чтения - записи блоков данных - read(), write()
3.20
Пространства имён предназначены для локализации имен идентификаторов и предотвращения их конфликтов-одно и то же имя, упомянутое в разных контекстах больше не вызывает конфликтов. Теперь стандартная библиотека с++ выведена из глобального пространства имён и определена внутри собственного пространства имен std, что уменьшило конфликты.
Объявление пространства имен
namespace nnamespace_name{
// ...
}
Особенности
предотвращение конликтов имен фукнций или переменных
можно разбить объявление одного и того же пространства имен на несколько частей
нельзя объявить пространство имен внутри функции либо любой другой ограниченной области видимости
могут быть вложенными
пространство имен - область видимости
3.21
Обращение к элементам пространства имен.
Код, расположенный внутри некоторого пространства имён, может обращаться непосредственно к идентификаторам, объявленным внутри этого же пространства имён, а объекты к своим методам.
Чтобы обратиться к элементу пространства имён извне, следует перед его именем указать имя пространства и оператор разрешения видимости name::member.
3.22
Пространства имен могут быть вложенными.
namespace n1{
...
namespace n2{
// ...
}
...
}
n1::n2::item = 2
Пространства имен могут не иметь имени.
Неименованные или безымянные пространства имён - особая разновидность пространства имён, которая позволяет создавать уникальные идентификаторы, область видимости которых ограничена файлом.
namespace{
// ...
}
Область видимости идентификаторов из неименованного пространства имён ограничена файлом, в котором это пространство объявлено.
Особенности:
Внутри файла доступ к таким идентификаторам производится без использования квалификаторов;
Вне файла такие переменные невидимы;
Неименованные пространства имён позволяют избежать применения спецификатора static, который также сужает область видимости глобального имени до размеров файла.
Особенности:
Применяется для добавления всех элементов некоторого пространства имён к текущему глобальному пространству имён
n1 - название пространства имён
доступ ко всем добавленным элементам может проводится без использования квалификатора
не рекомендуется для использования в глобальном пространстве имен заголовочных файлов
Объявление using::n1::member.
Особенности:
Применяется для добавления одного элемента некоторого пространства имён к текущему глобальному пространству имён
n1 - название пространства имён
member-конкретный элемент пространства имён
доступ ко всем добавленным элементам может проводится без использования квалификатора
3.24
Глобальное пространство имен
Соответствует области объявлений на уровне файла.
Стандартное пространство имен std::
Содержит все функции, данные и классы стандартной библиотеки C++.
3.25
Оператор asm
Для програмирования особых ситуаций есть возможность вставки в программы кода на языке Assembler
asm("инструкция");
asm инструкция;
asm { список инструкций }
Особенности:
список допустимых инструкций зависит от компилятора
#include <iostream>
using namespace std;
