GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::basic_ostringstream::str(3) C++ Standard Libary std::basic_ostringstream::str(3)

std::basic_ostringstream::str - std::basic_ostringstream::str


std::basic_string<CharT,Traits,Allocator> str() const; (until C++20)
std::basic_string<CharT,Traits,Allocator> str() const&; (since C++20)
template<class SAlloc>
std::basic_string<CharT,Traits,SAlloc> str( const SAlloc& a ) (2) (since C++20)
const;
std::basic_string<CharT,Traits,Allocator> str() &&; (1) (3) (since C++20)
void str( const std::basic_string<CharT,Traits,Allocator>& s (4)
);
template<class SAlloc> (5) (since C++20)
void str( const std::basic_string<CharT,Traits, SAlloc>& s );
void str( std::basic_string<CharT,Traits,Allocator>&& s ); (6) (since C++20)


Manages the contents of the underlying string object.


1) Returns a copy of the underlying string. Equivalent to return rdbuf()->str();.
2) Returns a copy of the underlying string, using a as allocator. Equivalent to
return rdbuf()->str(a);.
3) Returns a string move-constructed from the underlying string. Equivalent to
return std::move(*rdbuf()).str();.
4-5) Replaces the contents of the underlying string. Equivalent to rdbuf()->str(s);.
6) Replaces the contents of the underlying string. Equivalent to
rdbuf()->str(std::move(s));.


s - new contents of the underlying string
a - allocator used to construct the returned string


1-2) a copy of the underlying string object.
3) a string move-constructed from the underlying string object.
4-6) (none)


The copy of the underlying string returned by str is a temporary object that will be
destructed at the end of the expression, so directly calling c_str() on the result
of str() (for example in auto *ptr = out.str().c_str();) results in a dangling
pointer.

// Run this code


#include <sstream>
#include <iostream>
int main()
{
int n;


std::istringstream in; // could also use in("1 2")
in.str("1 2");
in >> n;
std::cout << "after reading the first int from \"1 2\", the int is "
<< n << ", str() = \"" << in.str() << "\"\n";


std::ostringstream out("1 2");
out << 3;
std::cout << "after writing the int '3' to output stream \"1 2\""
<< ", str() = \"" << out.str() << "\"\n";


std::ostringstream ate("1 2", std::ios_base::ate);
ate << 3;
std::cout << "after writing the int '3' to append stream \"1 2\""
<< ", str() = \"" << ate.str() << "\"\n";
}


after reading the first int from "1 2", the int is 1, str() = "1 2"
after writing the int '3' to output stream "1 2", str() = "3 2"
after writing the int '3' to append stream "1 2", str() = "1 23"


rdbuf returns the underlying raw string device object
(public member function)
str replaces or obtains a copy of the associated character string
(public member function of std::basic_stringbuf<CharT,Traits,Allocator>)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.