Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/io/strstream"

From cppreference.com
< cpp‎ | io
(+note on ends)
m (Synopsis)
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{cpp/title|strstream}}
 
{{cpp/title|strstream}}
 
{{cpp/io/strstream/navbar}}
 
{{cpp/io/strstream/navbar}}
{{dcl begin}}
+
{{ddcl|header=strstream|deprecated=c++98|removed=c++26|1=
{{dcl header|strstream}}
+
{{dcl | notes={{mark deprecated}} | 1=
+
 
class strstream : public std::iostream
 
class strstream : public std::iostream
 
}}
 
}}
{{dcl end}}
 
  
The class {{tt|strstream}} implements input and output operations on array-backed streams. It essentially wraps a raw array I/O device implementation ({{c|std::strstreambuf}}) into the higher-level interface of {{lc|std::basic_iostream}}.  
+
The class {{tt|strstream}} implements input and output operations on array-backed streams. It essentially wraps a raw array I/O device implementation ({{lc|std::strstreambuf}}) into the higher-level interface of {{lc|std::basic_iostream}}.  
  
The typical implementation of {{tt|strstream}} holds only one non-derived data member: an object of type {{c|std::strstreambuf}}.
+
The typical implementation of {{tt|strstream}} holds only one non-derived data member: an object of type {{lc|std::strstreambuf}}.
  
 
===Notes===
 
===Notes===
After any call to {{tt|str()}}, a call to {{tt|freeze(false)}} is required to allow the destructor to deallocate the buffer as necessary.
+
After any call to {{lc|str()}}, a call to {{lc|freeze()|freeze(false)}} is required to allow the destructor to deallocate the buffer as necessary.
  
Before any call to {{tt|str()}} that uses the result as a C string, the buffer must be null-terminated, typically with {{lc|std::ends}}.
+
Before any call to {{lc|str()}} that uses the result as a C-string, the buffer must be null-terminated, typically with {{lc|std::ends}}.
  
{{tt|strstream}} has been deprecated since C++98, {{lc|std::stringstream}} and [http://www.boost.org/doc/libs/release/libs/iostreams/doc/classes/array.html#array boost::iostreams::array] are the recommended replacements.
+
{{tt|strstream}} has been deprecated since C++98 and removed since C++26. {{lc|std::stringstream}}{{rev inl|since=c++23|, {{ltt|cpp/io/basic_spanstream|std::spanstream}}}}, and [https://www.boost.org/doc/libs/release/libs/iostreams/doc/classes/array.html#array {{tt|boost::iostreams::array}}] are the recommended replacements.
  
 
===Member functions===
 
===Member functions===
 
{{dsc begin}}
 
{{dsc begin}}
{{dsc inc | cpp/io/strstream/dsc constructor | strstream}}
+
{{dsc inc|cpp/io/strstream/dsc constructor|strstream}}
{{dsc inc | cpp/io/strstream/dsc destructor | strstream}}
+
{{dsc inc|cpp/io/strstream/dsc destructor|strstream}}
{{dsc inc | cpp/io/strstream/dsc rdbuf | strstream}}
+
{{dsc inc|cpp/io/strstream/dsc rdbuf|strstream}}
{{dsc inc | cpp/io/strstream/dsc str | strstream}}
+
{{dsc inc|cpp/io/strstream/dsc str|strstream}}
{{dsc inc | cpp/io/strstream/dsc freeze | strstream}}
+
{{dsc inc|cpp/io/strstream/dsc freeze|strstream}}
{{dsc inc | cpp/io/strstream/dsc pcount | strstream}}
+
{{dsc inc|cpp/io/strstream/dsc pcount|strstream}}
 
{{dsc end}}
 
{{dsc end}}
  
Line 34: Line 31:
 
{{cpp/io/ios_base/inherit}}
 
{{cpp/io/ios_base/inherit}}
  
[[de:cpp/io/strstream]]
+
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}
[[es:cpp/io/strstream]]
+
[[fr:cpp/io/strstream]]
+
[[it:cpp/io/strstream]]
+
[[ja:cpp/io/strstream]]
+
[[pt:cpp/io/strstream]]
+
[[ru:cpp/io/strstream]]
+
[[zh:cpp/io/strstream]]
+

Latest revision as of 07:11, 6 April 2024

Defined in header <strstream>
class strstream : public std::iostream
(deprecated in C++98)
(removed in C++26)

The class strstream implements input and output operations on array-backed streams. It essentially wraps a raw array I/O device implementation (std::strstreambuf) into the higher-level interface of std::basic_iostream.

The typical implementation of strstream holds only one non-derived data member: an object of type std::strstreambuf.

Contents

[edit] Notes

After any call to str(), a call to freeze(false) is required to allow the destructor to deallocate the buffer as necessary.

Before any call to str() that uses the result as a C-string, the buffer must be null-terminated, typically with std::ends.

strstream has been deprecated since C++98 and removed since C++26. std::stringstream, std::spanstream(since C++23), and boost::iostreams::array are the recommended replacements.

[edit] Member functions

constructs a strstream object, optionally allocating the buffer
(public member function) [edit]
[virtual]
destructs a strstream object, optionally deallocating the buffer
(virtual public member function) [edit]
obtains a pointer to the associated strstreambuf
(public member function) [edit]
accesses the output buffer
(public member function) [edit]
disables/enables automatic reallocation
(public member function) [edit]
obtains the number of characters written
(public member function) [edit]

Inherited from std::basic_istream

Member functions

Formatted input
extracts formatted data
(public member function of std::basic_istream<CharT,Traits>) [edit]
Unformatted input
extracts characters
(public member function of std::basic_istream<CharT,Traits>) [edit]
reads the next character without extracting it
(public member function of std::basic_istream<CharT,Traits>) [edit]
unextracts a character
(public member function of std::basic_istream<CharT,Traits>) [edit]
puts a character into input stream
(public member function of std::basic_istream<CharT,Traits>) [edit]
extracts characters until the given character is found
(public member function of std::basic_istream<CharT,Traits>) [edit]
extracts and discards characters until the given character is found
(public member function of std::basic_istream<CharT,Traits>) [edit]
extracts blocks of characters
(public member function of std::basic_istream<CharT,Traits>) [edit]
extracts already available blocks of characters
(public member function of std::basic_istream<CharT,Traits>) [edit]
returns number of characters extracted by last unformatted input operation
(public member function of std::basic_istream<CharT,Traits>) [edit]
Positioning
returns the input position indicator
(public member function of std::basic_istream<CharT,Traits>) [edit]
sets the input position indicator
(public member function of std::basic_istream<CharT,Traits>) [edit]
Miscellaneous
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
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]