home | help
std::strstream::str(3)	       C++ Standard Libary	  std::strstream::str(3)

NAME
     std::strstream::str - std::strstream::str

Synopsis
	char* str();  (deprecated in C++98)
		      (removed in C++26)

	Returns  the  pointer to the beginning of the buffer, after freezing it.
     Effectively
	calls rdbuf()->str().

Parameters
	(none)

Return value
	Pointer to the beginning of the buffer in the associated std::strstream-
     buf or a null
	pointer if no buffer is available.

Notes
	Before a call to str() that uses the result as a  C-string,  the  stream
     buffer must be
	null-terminated.  Regular  output  such  as  with stream << 1.2 does not
     store a null
	terminator, it must be appended explicitly, typically with the manipula-
     tor
	std::ends.

	After a call  to  str(),  dynamic  streams  become  frozen.  A	call  to
     freeze(false) is
	required  before  exiting  the	scope in which this strstream object was
     created.
	otherwise the destructor will leak memory. Also, additional output to  a
     frozen
	stream may be truncated once it reaches the end of the allocated buffer,
     which may
	leave the buffer not null-terminated.

Example
     // Run this code

      #include <iostream>
      #include <strstream>

      int main()
      {
	  std::strstream dyn; // dynamically-allocated output buffer
	  dyn << "Test: " << 1.23; // not adding std::ends to demonstrate append
     behavior
	  std::cout << "The output stream holds \"";
	  std::cout.write(dyn.str(), dyn.pcount()) << "\"\n";
	  // the stream is now frozen due to str()
	  dyn << " More text" << std::ends;
	  std::cout << "The output stream holds \"";
	  std::cout.write(dyn.str(), dyn.pcount()) << "\"\n";
	  dyn.freeze(false);
      }

Possible output:
      The stream holds "Test: 1.23"
      The stream holds "Test: 1.23 More "

See also
	str marks the buffer frozen and returns the beginning pointer of the in-
     put sequence
	    (public member function of std::strstreambuf)

http://cppreference.com 	   2024.06.10		  std::strstream::str(3)

home | help