Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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

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

Synopsis
	  char*	str();

	  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::strsteambuf	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 ma-
       nipulator
	  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 ostrstream	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 <strstream>
	#include <iostream>

	int main()
	{
	    std::ostrstream 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
       input sequence
	      (public member function of std::strstreambuf)

http://cppreference.com		  2022.07.31	       std::ostrstream::str(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::ostrstream::str&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help