Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/io/basic ostringstream"

From cppreference.com
< cpp‎ | io
(Changed links for noninherited members from pointing to basic_istringstream docs to pointing to basic_ostringstream docs)
m (Exposition-only members: +{{dsc hitem}}.)
 
(35 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 
{{cpp/title|basic_ostringstream}}
 
{{cpp/title|basic_ostringstream}}
{{cpp/io/basic_ostringstream/sidebar}}
+
{{cpp/io/basic_ostringstream/navbar}}
{{ddcl list begin}}
+
{{ddcl|header=sstream|1=
{{ddcl list header | sstream}}
+
template<
{{ddcl list item | notes={{mark pre c++0x version}} | 1=
+
     class CharT,
template<
+
    class CharT,
+
    class Traits = std::char_traits<CharT>
+
> class basic_ostringstream;
+
}}
+
{{ddcl list item | notes={{mark c++0x version}} | 1=
+
template<  
+
     class CharT,  
+
 
     class Traits = std::char_traits<CharT>,
 
     class Traits = std::char_traits<CharT>,
 
     class Allocator = std::allocator<CharT>
 
     class Allocator = std::allocator<CharT>
> class basic_ostringstream;
+
> class basic_ostringstream
 +
    : public basic_ostream<CharT, Traits>;
 
}}
 
}}
{{ddcl list end}}
 
<!--
 
<graphviz dot>
 
digraph inheritance {
 
    rankdir=LR
 
    graph [dpi="65", label="Inheritance diagram"]
 
    node [shape = box, fontsize=14, width=1.6, height=0.5];   
 
  
    base [label = "ios_base"];
+
The class template {{tt|std::basic_ostringstream}} implements output operations on string based streams. It effectively stores an instance of {{lc|std::basic_string}} and performs output operations to it.
    ios [label = <basic_ios<br/><font color="#808080">&lt;charT, Traits&gt;</font>>];
+
    ost [label = <basic_ostream<br/><font color="#808080">&lt;charT, Traits&gt;</font>>];
+
    osst [label = <basic_ostringstream<br/><font color="#808080">&lt;charT, Traits&gt;</font>>, style=filled];
+
  
    base -> ios;
+
At the low level, the class essentially wraps a raw string device implementation of {{lc|std::basic_stringbuf}} into a higher-level interface of {{lc|std::basic_ostream}}. The complete interface to unique {{lc|std::basic_stringbuf}} members is provided.
    ios -> ost;
+
    ost -> osst;
+
}
+
</graphviz>
+
-->
+
  
The class template {{tt|basic_ostringstream}} implements output operations on memory ({{ltt|cpp/string/basic_string|basic_string}}) based streams. It does that by wrapping a {{tt|basic_string}}-based raw device implementation ({{rlpt|basic_stringbuf}}) into a higher-level interface ({{rlpt|basic_ostream}}). The complete interface to unique {{tt|basic_stringbuf}} members is provided.
+
{{inheritance diagram/std-basic_ostringstream}}
  
Two specializations for common character types are also defined:
+
{{cpp/basic char typedefs|ostringstream|sstream}}
  
{{tdcl list begin}}
+
===Member types===
{{tdcl list header | sstream}}
+
{{dsc begin}}
{{tdcl list hitem | Type | Definition}}
+
{{dsc hitem|Member type|Definition}}
{{tdcl list item | {{tt|ostringstream}} | {{cpp|basic_ostringstream<char>}}}}
+
{{dsc inc|cpp/io/dsc char_type}}
{{tdcl list item | {{tt|wostringstream}} | {{cpp|basic_ostringstream<wchar_t>}}}}
+
{{dsc inc|cpp/io/dsc traits_type}}
{{tdcl list end}}
+
{{dsc inc|cpp/io/dsc int_type}}
 +
{{dsc inc|cpp/io/dsc pos_type}}
 +
{{dsc inc|cpp/io/dsc off_type}}
 +
{{dsc inc|cpp/io/dsc allocator_type}}
 +
{{dsc end}}
  
{{tdcl list begin}}
+
===Exposition-only members===
{{tdcl list h1 | Member types}}
+
{{dsc begin}}
{{tdcl list hitem | Member type | Definition}}
+
{{dsc hitem|Name|Definition}}
{{tdcl list template | cpp/io/tdcl list char_type}}
+
{{dsc expos mem obj|sb|the {{c/core|std::basic_stringbuf<CharT, Traits, Allocator>}} used as the underlying buffer}}
{{tdcl list template | cpp/io/tdcl list traits_type}}
+
{{dsc end}}
{{tdcl list template | cpp/io/tdcl list int_type}}
+
{{tdcl list template | cpp/io/tdcl list pos_type}}
+
{{tdcl list template | cpp/io/tdcl list off_type}}
+
{{tdcl list template | cpp/io/tdcl list allocator_type}}
+
{{tdcl list end}}
+
  
{{dcl list begin}}
+
===Member functions===
{{dcl list h1 | Member functions }}
+
{{dsc begin}}
{{dcl list template | cpp/io/basic_stringstream/dcl list constructor | basic_ostringstream}}
+
{{dsc inc|cpp/io/basic_stringstream/dsc constructor|basic_ostringstream}}
{{dcl list template | cpp/io/basic_stringstream/dcl list operator{{=}} | basic_ostringstream}}
+
{{dsc inc|cpp/io/basic_stringstream/dsc operator{{=}}|basic_ostringstream}}
{{dcl list template | cpp/io/basic_stringstream/dcl list swap | basic_ostringstream}}
+
{{dsc inc|cpp/io/basic_stringstream/dsc swap|basic_ostringstream}}
{{dcl list template | cpp/io/basic_stringstream/dcl list rdbuf | basic_ostringstream}}
+
{{dsc inc|cpp/io/basic_stringstream/dsc rdbuf|basic_ostringstream}}
  
{{dcl list h2 | String operations }}
+
{{dsc h2|String operations}}
{{dcl list template | cpp/io/basic_stringstream/dcl list str | basic_ostringstream}}
+
{{dsc inc|cpp/io/basic_stringstream/dsc str|basic_ostringstream}}
{{dcl list end}}
+
{{dsc inc|cpp/io/basic_stringstream/dsc view|basic_ostringstream}}
 +
{{dsc end}}
 +
 
 +
===Non-member functions===
 +
{{dsc begin}}
 +
{{dsc inc|cpp/io/basic_stringstream/dsc swap2|basic_ostringstream}}
 +
{{dsc end}}
  
 
{{cpp/io/basic_ostream/inherit}}
 
{{cpp/io/basic_ostream/inherit}}
 
{{cpp/io/basic_ios/inherit}}
 
{{cpp/io/basic_ios/inherit}}
 
{{cpp/io/ios_base/inherit}}
 
{{cpp/io/ios_base/inherit}}
 +
 +
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}

Latest revision as of 11:49, 13 September 2023

 
 
 
 
Defined in header <sstream>
template<

    class CharT,
    class Traits = std::char_traits<CharT>,
    class Allocator = std::allocator<CharT>
> class basic_ostringstream

    : public basic_ostream<CharT, Traits>;

The class template std::basic_ostringstream implements output operations on string based streams. It effectively stores an instance of std::basic_string and performs output operations to it.

At the low level, the class essentially wraps a raw string device implementation of std::basic_stringbuf into a higher-level interface of std::basic_ostream. The complete interface to unique std::basic_stringbuf members is provided.

cpp/io/ios basecpp/io/basic ioscpp/io/basic ostreamstd-basic ostringstream-inheritance.svg

Inheritance diagram

Several typedefs for common character types are provided:

Defined in header <sstream>
Type Definition
std::ostringstream std::basic_ostringstream<char>
std::wostringstream std::basic_ostringstream<wchar_t>

Contents

[edit] Member types

Member type Definition
char_type CharT[edit]
traits_type Traits; the program is ill-formed if Traits::char_type is not CharT.[edit]
int_type Traits::int_type[edit]
pos_type Traits::pos_type[edit]
off_type Traits::off_type[edit]
allocator_type Allocator[edit]

[edit] Exposition-only members

Name Definition
sb the std::basic_stringbuf<CharT, Traits, Allocator> used as the underlying buffer
(exposition-only member object*)

[edit] Member functions

constructs the string stream
(public member function) [edit]
(C++11)
moves the string stream
(public member function) [edit]
(C++11)
swaps two string streams
(public member function) [edit]
returns the underlying raw string device object
(public member function) [edit]
String operations
gets or sets the contents of underlying string device object
(public member function) [edit]
(C++20)
obtains a view over the contents of underlying string device object
(public member function) [edit]

[edit] Non-member functions

specializes the std::swap algorithm
(function template) [edit]

Inherited from std::basic_ostream

Member functions

Formatted output
inserts formatted data
(public member function of std::basic_ostream<CharT,Traits>) [edit]
Unformatted output
inserts a character
(public member function of std::basic_ostream<CharT,Traits>) [edit]
inserts blocks of characters
(public member function of std::basic_ostream<CharT,Traits>) [edit]
Positioning
returns the output position indicator
(public member function of std::basic_ostream<CharT,Traits>) [edit]
sets the output position indicator
(public member function of std::basic_ostream<CharT,Traits>) [edit]
Miscellaneous
synchronizes with the underlying storage device
(public member function of std::basic_ostream<CharT,Traits>) [edit]

Member classes

implements basic logic for preparation of the stream for output operations
(public member class of std::basic_ostream<CharT,Traits>) [edit]

Inherited from std::basic_ios

Member types

Member type Definition
char_type CharT
traits_type Traits
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type

Member functions

State functions
checks if no error has occurred i.e. I/O operations are available
(public member function of std::basic_ios<CharT,Traits>) [edit]
checks if end-of-file has been reached
(public member function of std::basic_ios<CharT,Traits>) [edit]
checks if an error has occurred
(public member function of std::basic_ios<CharT,Traits>) [edit]
checks if a non-recoverable error has occurred
(public member function of std::basic_ios<CharT,Traits>) [edit]
checks if an error has occurred (synonym of fail())
(public member function of std::basic_ios<CharT,Traits>) [edit]
checks if no error has occurred (synonym of !fail())
(public member function of std::basic_ios<CharT,Traits>) [edit]
returns state flags
(public member function of std::basic_ios<CharT,Traits>) [edit]
sets state flags
(public member function of std::basic_ios<CharT,Traits>) [edit]
modifies state flags
(public member function of std::basic_ios<CharT,Traits>) [edit]
Formatting
copies formatting information
(public member function of std::basic_ios<CharT,Traits>) [edit]
manages the fill character
(public member function of std::basic_ios<CharT,Traits>) [edit]
Miscellaneous
manages exception mask
(public member function of std::basic_ios<CharT,Traits>) [edit]
sets the locale
(public member function of std::basic_ios<CharT,Traits>) [edit]
manages associated stream buffer
(public member function of std::basic_ios<CharT,Traits>) [edit]
manages tied stream
(public member function of std::basic_ios<CharT,Traits>) [edit]
narrows characters
(public member function of std::basic_ios<CharT,Traits>) [edit]
widens characters
(public member function of std::basic_ios<CharT,Traits>) [edit]

Inherited from std::ios_base

Member functions

Formatting
manages format flags
(public member function of std::ios_base) [edit]
sets specific format flag
(public member function of std::ios_base) [edit]
clears specific format flag
(public member function of std::ios_base) [edit]
manages decimal precision of floating point operations
(public member function of std::ios_base) [edit]
manages field width
(public member function of std::ios_base) [edit]
Locales
sets locale
(public member function of std::ios_base) [edit]
returns current locale
(public member function of std::ios_base) [edit]
Internal extensible array
[static]
returns a program-wide unique integer that is safe to use as index to pword() and iword()
(public static member function of std::ios_base) [edit]
resizes the private storage if necessary and access to the long element at the given index
(public member function of std::ios_base) [edit]
resizes the private storage if necessary and access to the void* element at the given index
(public member function of std::ios_base) [edit]
Miscellaneous
registers event callback function
(public member function of std::ios_base) [edit]
sets whether C++ and C I/O libraries are interoperable
(public static member function of std::ios_base) [edit]
Member classes
stream exception
(public member class of std::ios_base) [edit]
initializes standard stream objects
(public member class of std::ios_base) [edit]

Member types and constants

Type Explanation
stream open mode type

The following constants are also defined:

Constant Explanation[edit]
app seek to the end of stream before each write[edit]
binary open in binary mode[edit]
in open for reading[edit]
out open for writing[edit]
trunc discard the contents of the stream when opening[edit]
ate seek to the end of stream immediately after open[edit]
noreplace (C++23) open in exclusive mode[edit]

(typedef) [edit]
formatting flags type

The following constants are also defined:

Constant Explanation[edit]
dec use decimal base for integer I/O: see std::dec[edit]
oct use octal base for integer I/O: see std::oct[edit]
hex use hexadecimal base for integer I/O: see std::hex[edit]
basefield dec | oct | hex. Useful for masking operations[edit]
left left adjustment (adds fill characters to the right): see std::left[edit]
right right adjustment (adds fill characters to the left): see std::right[edit]
internal internal adjustment (adds fill characters to the internal designated point): see std::internal[edit]
adjustfield left | right | internal. Useful for masking operations[edit]
scientific generate floating point types using scientific notation, or hex notation if combined with fixed: see std::scientific[edit]
fixed generate floating point types using fixed notation, or hex notation if combined with scientific: see std::fixed[edit]
floatfield scientific | fixed. Useful for masking operations[edit]
boolalpha insert and extract bool type in alphanumeric format: see std::boolalpha[edit]
showbase generate a prefix indicating the numeric base for integer output, require the currency indicator in monetary I/O: see std::showbase[edit]
showpoint generate a decimal-point character unconditionally for floating-point number output: see std::showpoint[edit]
showpos generate a + character for non-negative numeric output: see std::showpos[edit]
skipws skip leading whitespace before certain input operations: see std::skipws[edit]
unitbuf flush the output after each output operation: see std::unitbuf[edit]
uppercase replace certain lowercase letters with their uppercase
equivalents in certain output operations: see std::uppercase[edit]

(typedef) [edit]
state of the stream type

The following constants are also defined:

Constant Explanation[edit]
goodbit no error[edit]
badbit irrecoverable stream error[edit]
failbit input/output operation failed (formatting or extraction error)[edit]
eofbit associated input sequence has reached end-of-file[edit]

(typedef) [edit]
seeking direction type

The following constants are also defined:

Constant Explanation[edit]
beg the beginning of a stream[edit]
end the ending of a stream[edit]
cur the current position of stream position indicator[edit]

(typedef) [edit]
specifies event type
(enum) [edit]
callback function type
(typedef) [edit]