<sstream>
The <sstream> header declares classes, templates, and other types for
reading from and writing to strings in the same manner as reading from
and writing to files.
See Chapter 9 for a general
discussion of I/O, Chapter 1 for
more information about character sets, and the <iostream> section in this chapter for
information about the base-class templates required by the stringstream class templates. Refer to Chapter 8 for information about traits in
general and to the <string>
section in this chapter for detailed information about the char_traits template. Refer to the <streambuf> section in this chapter for
information about the basic_streambuf
template. See also <strstream>
for classes that are similar to the string streams, except they work
with arrays of narrow characters.
To read from a string, use istringstream; for writing, use ostringstream; for reading and writing, use
stringstream. For wide character I/O,
use wistringstream, wostringstream, or wstringstream. Example 13-35 shows tostring, a simple use of ostringstream to convert a value to a string.
(Think of tostring as the inverse of
strtol and friends.)
template<typename T>
std::string tostring(const T& x)
{
std::ostringstream out;
out << x;
return out.str( );
}Example 13-36 shows a
use of istringstream to interpret
HTML colors. In HTML, a color can be a name, such as white, or a hexadecimal digit string that
begins with #. The digit string is interpreted as a triplet ...