namespace std {
class strstream
: public basic_iostream<char> {
public:
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;
strstream();
strstream(char* s, int n,
ios_base::openmode mode = ios_base::in|ios_base::out);
virtual ~strstream();
strstreambuf* rdbuf() const;
void freeze(bool freezefl = true);
int pcount() const;
char* str();
private:
strstreambuf sb; };
}
The class
strstream
supports reading and writing from objects of class
strstreambuf. It supplies a
strstreambuf
object to control the associated array object
. For the sake of exposition, the maintained data is presented here as:
sb, the
strstreambuf object
.
strstream();
Effects:
Constructs an object of class
strstream,
initializing the base class with
iostream(&sb). strstream(char* s, int n,
ios_base::openmode mode = ios_base::in|ios_base::out);
Effects:
Constructs an object of class
strstream,
initializing the base class with
iostream(&sb)
and initializing
sb with one of the two constructors:
If
(mode & app) == 0,
then
s shall designate the first element of an array of
n elements
. The constructor is
strstreambuf(s,n,s).If
(mode & app) != 0,
then
s shall
designate the first element of an array of
n elements that contains
an
ntbs whose first element is designated by
s. The constructor is
strstreambuf(s,n,s + std::strlen(s)).
virtual ~strstream();
Effects:
Destroys an object of class
strstream. strstreambuf* rdbuf() const;
void freeze(bool freezefl = true);
Effects:
Calls
rdbuf()->freeze(freezefl). char* str();
int pcount() const;
Returns:
rdbuf()->pcount().