home | help
std::ostrst...::ostrstream(3)  C++ Standard Libary std::ostrst...::ostrstream(3)

NAME
     std::ostrstream::ostrstream - std::ostrstream::ostrstream

Synopsis
	ostrstream();						    (1)  (depre-
     cated in C++98)
								       (removed
     in C++26)
	ostrstream( char* s, int n, std::ios_base::openmode mode =  (2)  (depre-
     cated in C++98)
	std::ios_base::out  );						(removed
     in C++26)

	Constructs new output strstream and its underlying std::strstreambuf.

	1) Default-constructs the underlying std::strstreambuf, which creates  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 write to
	user-provided fixed-size array:
	a) if 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	the  app  bit  is  set in mode, constructs the buffer by calling
     strstreambuf(s,
	n, s + std::strlen(s)). The behavior is undefined 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 sequence.

Parameters
	s    - char array to use as the output buffer
	n    - size of the array to be used as the output buffer
	       specifies stream open mode. It is a bitmask type,  the  following
     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 <strstream>

      int main()
      {
	  std::ostrstream s1; // dynamic buffer
	  s1 << 1 << ' ' << 3.14 << " example\n" << std::ends;
	  std::cout << s1.str();
	  s1.freeze(false);

	  char arr[15] = "Hello";

	  std::ostrstream s2(arr, sizeof arr, std::ios_base::app);
	  s2 << ", world!" << std::ends;
	  std::cout << s2.str() << '\n';
	  std::cout << arr << '\n'; // streams use the provided arrays
      }

Output:
      1 3.14 example
      Hello, world!
      Hello, world!

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 a strstream object, optionally  allocating  the
     buffer
		      (public member function of std::strstream)

http://cppreference.com 	   2024.06.10	   std::ostrst...::ostrstream(3)

home | help