namespace std { class strstream : public basic_iostream<char> { public: // Types using char_type = char; using int_type = char_traits<char>::int_type; using pos_type = char_traits<char>::pos_type; using off_type = char_traits<char>::off_type; // constructors/destructor strstream(); strstream(char* s, int n, ios_base::openmode mode = ios_base::in|ios_base::out); virtual ~strstream(); // Members: strstreambuf* rdbuf() const; void freeze(bool freezefl = true); int pcount() const; char* str(); private: strstreambuf sb; // exposition only }; }
Класс strstream поддерживает чтение и запись из объектов класса strstreambuf. Он предоставляет strstreambuf объект для управления связанным объектом массива. Для демонстрации поддерживаемые данные представлены здесь как:
sb, strstreambuf объект.
strstream();
strstream(char* s, int n,
ios_base::openmode mode = ios_base::in|ios_base::out);
Effects: Создает объект класса strstream, инициализируя базовый класс iostream(&sb) и инициализируя sb одним из двух конструкторов:
Если (mode & app) == 0, то s обозначает первый элемент массива n элементов. Конструктор есть strstreambuf(s,n,s).
Если (mode & app) != 0, то s должен обозначить первый элемент массива n элементов, который содержит ntbs , первый элемент которого обозначен s. Конструктор есть strstreambuf(s,n,s + std::strlen(s)).
virtual ~strstream();