
Module: Standard C++ Library Library: Input/output
basic_ostream
basic_stringstream
basic_iostream basic_ios
ios_base
basic_istream
|
allocator_type basic_stringstream() char_type |
int_type off_type pos_type |
rdbuf() str() string_type |
traits_type ~basic_stringstream() |
Class that supports writing and reading objects of specializations of the class template basic_string to and from an array in memory
#include <sstream>
namespace std {
template<class charT, class traits = char_traits<charT>,
class Allocator = allocator<charT> >
class basic_stringstream;
}
The class template basic_stringstream reads and writes to an array in memory. It supports writing and reading objects of class basic_string, and uses a basic_stringbuf object to control the associated storage. It inherits from basic_iostream and therefore can use all the formatted and unformatted output and input functions.
namespace std {
template<class charT, class traits = char_traits<charT>,
class Allocator = allocator<charT> >
class basic_stringstream
: public basic_iostream<charT, traits> {
public:
typedef traits traits_type;
typedef charT char_type;
typedef Allocator allocator_type;
typedef typename traits_type::int_type int_type;
typedef typename traits_type::pos_type pos_type;
typedef typename traits_type::off_type off_type;
explicit
basic_stringstream(ios_base::openmode =
ios_base::out | ios_base::in);
explicit
basic_stringstream(const basic_string<char_type,
traits_type, allocator_type>&,
ios_base::openmode =
ios_base::out | ios_base::in);
virtual ~basic_stringstream();
basic_stringbuf<char_type, traits_type, allocator_type> *
rdbuf() const;
basic_string<char_type, traits_type, allocator_type>
str() const;
void
str(const basic_string<char_type, traits_type, allocator_type>&);
};
}
allocator_type
The type allocator_type is a synonym for the template parameter Allocator.
char_type
The type char_type is a synonym for the template parameter charT.
int_type
The type int_type is a synonym of type traits::in_type.
off_type
The type off_type is a synonym of type traits::off_type.
pos_type
The type pos_type is a synonym of type traits::pos_type.
string_type
The type string_type is an instantiation of class basic_string on type charT.
traits_type
The type traits_type is a synonym for the template parameter traits.
stringstream
The type stringstream is a specialization of class template basic_stringstream on type char:
typedef basic_stringstream<char> stringstream;
wstringstream
The type wstringstream is a specialization of class template basic_stringstream on type wchar_t:
typedef basic_stringstream<wchar_t> wstringstream;
explicit basic_stringstream(ios_base::openmode which =
ios_base::in | ios_base::out);
Constructs an object of class basic_stringstream, initializing the base class basic_iostream with the associated string buffer. This string buffer is initialized by calling the basic_stringbuf constructor basic_stringbuf<charT,traits,Allocator>(which).
explicit basic_stringstream(const basic_string<char_type,
traits_type, allocator_type>& str,
ios_base::openmode which =
ios_base::in | ios_base::out);
Constructs an object of class basic_stringstream, initializing the base class basic_iostream with the associated string buffer. The string buffer is initialized by calling the basic_stringbuf constructor basic_stringbuf<char_type, traits_type, allocator_type>(str,which).
virtual ~basic_stringstream();
Destroys an object of class basic_stringstream.
basic_stringbuf<char_type, traits_type, allocator_type>* rdbuf() const;
Returns a pointer to the basic_stringbuf associated with the stream.
basic_string<char_type, traits_type, allocator_type> str() const;
Returns rdbuf()->str().
void
str(const basic_string<char_type, traits_type,
allocator_type>& str);
Calls rdbuf()->str(str).
//
// stringstream.cpp
//
#include <iostream> // for wcout, endl
#include <sstream> // for wstringstream
int main ()
{
// create a bi-directional wstringstream object
std::wstringstream inout;
// write out three lines to the stream
inout << "Dieses ist die Geschichte eines Mannes.\n"
<< "C'est l'histoire d'un homme.\n"
<< "This is the story of a man." << std::endl;
std::wstring line;
// extract the first line
std::getline (inout, line);
// output the first line to stdout
std::wcout << "\nDeutsch:\n" << line;
// extract the second line
std::getline (inout, line);
// output the second line to stdout
std::wcout << "\nFrançais:\n" << line;
// extract the third line
std::getline (inout, line);
// output the third line to stdout
std::wcout << "\nEnglish:\n" << line << std::endl;
// output the contents of the stream object to stdout
std::wcout << std::endl << inout.str() << std::endl;
return 0;
}
Program Output:
Deutsch: Dieses ist die Geschichte eines Mannes. Français: C'est l'histoire d'un homme. English: This is the story of a man. Dieses ist die Geschichte eines Mannes. C'est l'histoire d'un homme. This is the story of a man.
char_traits, ios_base, basic_ios, basic_stringbuf, basic_string, basic_istringstream, basic_ostringstream
ISO/IEC 14882:1998 -- International Standard for Information Systems --Programming Language C++, Section 27.7.4
Copyright (c) 1994-2006 Rogue Wave Software, a Quovadx Division.
Licensed under the Apache License, Version 2.0.
Contact Rogue Wave about documentation or support issues. You can also seek help from other developers through the Apache stdcxx community (see below).