FreeBSD Manual Pages
std::strstream::strstream(3) C++ Standard Libary std::strstream::strstream(3) NAME std::strstream::strstream - std::strstream::strstream Synopsis strstream(); (1) (dep- recated in C++98) (re- moved in C++26) strstream( char* s, int n, std::ios_base::openmode mode = (dep- recated in C++98) std::ios_base::in | (2) (re- moved in C++26) std::ios_base::out ); Constructs new input/output strstream and its underlying std::strstreambuf. 1) Default-constructs the underlying std::strstreambuf, which cre- ates a dynamically growing buffer, and initializes the base class with the address of the strstreambuf member. 2) Initialized the base class with the address of the underlying std::strstreambuf member, which is initialized in one of the two possible ways, both of which use a user-provided fixed-size array: a) if (mode & app) == 0 (the app bit is not set in mode), constructs the buffer by calling strstreambuf(s, n, s). The behavior is undefined if there are less than n elements in the array whose first element is pointed to by s. b) if (mode & app) != 0 (the app bit is set in mode), constructs the buffer by calling strstreambuf(s, n, s + std::strlen(s)). The behavior is un- defined if there are less than n elements in the array whose first element is pointed to by s or if the array does not contain a valid null-terminated character se- quence. Parameters s - char array to use as the output buffer n - size of the array to be used for output specifies stream open mode. It is a bitmask type, the follow- ing constants are defined (although only app is used): Constant Explanation app seek to the end of stream before each write mode - binary open in binary mode in open for reading out open for writing trunc discard the contents of the stream when opening ate seek to the end of stream immediately after open noreplace (C++23) open in exclusive mode Example // Run this code #include <iostream> #include <string> #include <strstream> int main() { // dynamic buffer std::strstream s1; s1 << 1 << ' ' << 3.14 << " example" << std::ends; std::cout << "Buffer holds: '" << s1.str() << "'\n"; s1.freeze(false); int n; double d; std::string w; s1 >> n >> d >> w; std::cout << "Read back: n = " << n << ", d = " << d << ", w = '" << w << "'\n"; // static buffer char arr[20] = "-1 -3.14 "; std::strstream s2(arr, sizeof arr, std::ios_base::app); s2 << "another" << std::ends; std::cout << "Buffer holds: '" << s2.str() << "'\n"; s2 >> n >> d >> w; std::cout << "Read back: n = " << n << ", d = " << d << ", w = '" << w << "'\n"; } Output: Buffer holds: '1 3.14 example' Read back: n = 1, d = 3.14, w = 'example' Buffer holds: '-1 -3.14 another' Read back: n = -1, d = -3.14, w = 'another' Defect reports The following behavior-changing defect reports were applied retroac- tively to previously published C++ standards. DR Applied to Behavior as published Cor- rect behavior overload (2) only considered the case consid- ers cases (mode & LWG 115 C++98 mode & app == 0 (== has higher precedence app) == 0 than &) and (mode & app) != 0 See also constructor constructs a strstreambuf object (public member function of std::strstreambuf) constructor constructs an istrstream object, optionally allocating the buffer (public member function of std::istrstream) constructor constructs an ostrstream object, optionally allocating the buffer (public member function of std::ostrstream) http://cppreference.com 2024.06.10 std::strstream::strstream(3)
NAME | Synopsis | Parameters | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::strstream::strstream&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
