std::basic_stringstream - cppreference.com

From cppreference.com

template<classCharT,classTraits=std::char_traits<CharT>,classAllocator=std::allocator<CharT>>classbasic_stringstream:publicbasic_iostream<CharT,Traits>;The class template std::basic_stringstream implements input and output operations on string based streams. It effectively stores an instance of

std::basic_string

and performs the input and output operations on 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_iostream

. The complete interface to unique

std::basic_stringbuf

members is provided.

Inheritance diagram

Several typedefs for common character types are provided:

Type Definition std::stringstreamstd::basic_stringstream<char>std::wstringstreamstd::basic_stringstream<wchar_t>Member types

Member type Definition char_typeCharT

[edit]

traits_typeTraits; the program is ill-formed if Traits::char_type is not CharT.

[edit]

int_typeTraits::int_type

[edit]

pos_typeTraits::pos_type

[edit]

off_typeTraits::off_type

[edit]

allocator_typeAllocator

[edit]

Exposition-only members

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

(constructor)

constructs the string stream
(public member function)

[edit]

operator=

(C++11)

moves the string stream
(public member function)

[edit]

swap

(C++11)

swaps two string streams
(public member function)

[edit]

rdbuf

returns the underlying raw string device object
(public member function)

[edit]

String operations

str

gets or sets the contents of underlying string device object
(public member function)

[edit]

view

(C++20)

obtains a view over the contents of underlying string device object
(public member function)

[edit]

Non-member functions

Inherited from

std::basic_istream

Member functions

Formatted input

operator>>

extracts formatted data
(public member function of std::basic_istream<CharT,Traits>)

[edit]

Unformatted input

get

extracts characters
(public member function of std::basic_istream<CharT,Traits>)

[edit]

peek

reads the next character without extracting it
(public member function of std::basic_istream<CharT,Traits>)

[edit]

unget

unextracts a character
(public member function of std::basic_istream<CharT,Traits>)

[edit]

putback

puts a character into input stream
(public member function of std::basic_istream<CharT,Traits>)

[edit]

getline

extracts characters until the given character is found
(public member function of std::basic_istream<CharT,Traits>)

[edit]

ignore

extracts and discards characters until the given character is found
(public member function of std::basic_istream<CharT,Traits>)

[edit]

read

extracts blocks of characters
(public member function of std::basic_istream<CharT,Traits>)

[edit]

readsome

extracts already available blocks of characters
(public member function of std::basic_istream<CharT,Traits>)

[edit]

gcount

returns number of characters extracted by last unformatted input operation
(public member function of std::basic_istream<CharT,Traits>)

[edit]

Positioning

tellg

returns the input position indicator
(public member function of std::basic_istream<CharT,Traits>)

[edit]

seekg

sets the input position indicator
(public member function of std::basic_istream<CharT,Traits>)

[edit]

Miscellaneous

sync

synchronizes with the underlying storage device
(public member function of std::basic_istream<CharT,Traits>)

[edit]

Member classes

implements basic logic for preparation of the stream for input operations
(public member class of std::basic_istream<CharT,Traits>)

[edit]

Inherited from

std::basic_ostream

Member functions

Formatted output

operator<<

inserts formatted data
(public member function of std::basic_ostream<CharT,Traits>)

[edit]

Unformatted output

put

inserts a character
(public member function of std::basic_ostream<CharT,Traits>)

[edit]

write

inserts blocks of characters
(public member function of std::basic_ostream<CharT,Traits>)

[edit]

Positioning

tellp

returns the output position indicator
(public member function of std::basic_ostream<CharT,Traits>)

[edit]

seekp

sets the output position indicator
(public member function of std::basic_ostream<CharT,Traits>)

[edit]

Miscellaneous

flush

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_typeCharTtraits_typeTraitsint_typeTraits::int_typepos_typeTraits::pos_typeoff_typeTraits::off_typeMember functions

State functions

good

checks if no error has occurred i.e. I/O operations are available
(public member function of std::basic_ios<CharT,Traits>)

[edit]

eof

checks if end-of-file has been reached
(public member function of std::basic_ios<CharT,Traits>)

[edit]

fail

checks if an error has occurred
(public member function of std::basic_ios<CharT,Traits>)

[edit]

bad

checks if a non-recoverable error has occurred
(public member function of std::basic_ios<CharT,Traits>)

[edit]

operator!

checks if an error has occurred (synonym of

fail()

)
(public member function of std::basic_ios<CharT,Traits>)

[edit]

operator bool

checks if no error has occurred (synonym of !

fail()

)
(public member function of std::basic_ios<CharT,Traits>)

[edit]

rdstate

returns state flags
(public member function of std::basic_ios<CharT,Traits>)

[edit]

setstate

sets state flags
(public member function of std::basic_ios<CharT,Traits>)

[edit]

clear

modifies state flags
(public member function of std::basic_ios<CharT,Traits>)

[edit]

Formatting

copyfmt

copies formatting information
(public member function of std::basic_ios<CharT,Traits>)

[edit]

fill

manages the fill character
(public member function of std::basic_ios<CharT,Traits>)

[edit]

Miscellaneous

exceptions

manages exception mask
(public member function of std::basic_ios<CharT,Traits>)

[edit]

imbue

sets the locale
(public member function of std::basic_ios<CharT,Traits>)

[edit]

rdbuf

manages associated stream buffer
(public member function of std::basic_ios<CharT,Traits>)

[edit]

tie

manages tied stream
(public member function of std::basic_ios<CharT,Traits>)

[edit]

narrow

narrows characters
(public member function of std::basic_ios<CharT,Traits>)

[edit]

widen

widens characters
(public member function of std::basic_ios<CharT,Traits>)

[edit]

Inherited from

std::ios_base

Member functions

Formatting

flags

manages format flags
(public member function of std::ios_base)

[edit]

setf

sets specific format flag
(public member function of std::ios_base)

[edit]

unsetf

clears specific format flag
(public member function of std::ios_base)

[edit]

precision

manages decimal precision of floating point operations
(public member function of std::ios_base)

[edit]

width

manages field width
(public member function of std::ios_base)

[edit]

Locales

imbue

sets locale
(public member function of std::ios_base)

[edit]

getloc

returns current locale
(public member function of std::ios_base)

[edit]

Internal extensible array

xalloc

[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]

iword

resizes the private storage if necessary and access to the long element at the given index
(public member function of std::ios_base)

[edit]

pword

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

register_callback

registers event callback function
(public member function of std::ios_base)

[edit]

sync_with_stdio

[static]

sets whether C++ and C I/O libraries are interoperable
(public static member function of std::ios_base)

[edit]

Member classes

failure

stream exception
(public member class of std::ios_base)

[edit]

Init

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:

(typedef)

[edit]

seeking direction type The following constants are also defined:

(typedef)

[edit]

specifies event type
(enum)

[edit]

callback function type
(typedef)

[edit]