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