std::ends
From cppreference.com
 
 
 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Input/output library 
 
 
 
 
 
 
 
 
 
 
 
 
 Print functions (C++23)
 Buffers
(C++23)
(C++98/26*)
(C++20)
 Streams
 Abstractions
 File I/O
 String I/O
 Array I/O
(C++23)
(C++23)
(C++23)
(C++98/26*)
(C++98/26*)
(C++98/26*)
 Synchronized Output
(C++20)
 Types
 Error category interface
(C++11)
(C++11)
Input/output manipulators 
  
 
 
 
 
  
 
 
 Floating-point formatting
(C++11)(C++11)
 Integer formatting
 Boolean formatting
 Field width and fill control
 Other formatting
 Whitespace processing
ends
 Output flushing
(C++20)(C++20)
 Status flags manipulation
 Time and money I/O
 Quoted manipulator
(C++14)
Defined in header 
 
 
<ostream> 
 template< class CharT, class Traits >
std::basic_ostream <CharT, Traits>& ends( std::basic_ostream <CharT, Traits>& os );
 
 
std::basic_ostream <CharT, Traits>& ends( std::basic_ostream <CharT, Traits>& os );
Inserts a null character into the output sequence os as if by calling os.put(CharT()).
This is an output-only I/O manipulator, it may be called with an expression such as out << std::ends for any out of type std::basic_ostream .
Contents
[edit] Notes
This manipulator is typically used with std::ostrstream , when the associated output buffer needs to be null-terminated to be processed as a C string.
Unlike std::endl , this manipulator does not flush the stream.
[edit] Parameters
 os
 -
 reference to output stream
[edit] Return value
os (reference to the stream after insertion of the null character).
[edit] Example
Run this code
#include <cstdio> #include <strstream> int main() { std::ostrstream oss; oss << "Sample text: " << 42 << std::ends; std::printf ("%s\n", oss.str()); oss.freeze(false); // enable memory deallocation }
Output:
Sample text: 42