std::basic_ostream::put(3)

NAME
std::basic_ostream::put - std::basic_ostream::put

Synopsis
   basic_ostream& put( char_type ch );
   Behaves as an UnformattedOutputFunction. After constructing and checking the sentry
   object, writes the character ch to the output stream.
   If the output fails for any reason, sets badbit.

Parameters
   ch - character to write

Return value
   *this

Notes
   This function is not overloaded for the types signed char or unsigned char, unlike
   the formatted operator<<
   Unlike formatted output functions, this function does not set the failbit if the
   output fails.

Example
// Run this code
 #include <fstream>
 #include <iostream>
 int main()
 {
     std::cout.put('a'); // normal usage
     std::cout.put('\n');
     std::ofstream s("/does/not/exist/");
     s.clear(); // pretend the stream is good
     std::cout << "Unformatted output: ";
     s.put('c'); // this will set badbit, but not failbit
     std::cout << " fail=" << bool(s.rdstate() & s.failbit);
     std::cout << " bad=" << s.bad() << '\n';
     s.clear();
     std::cout << "Formatted output: ";
     s << 'c'; // this will set badbit and failbit
     std::cout << " fail=" << bool(s.rdstate() & s.failbit);
     std::cout << " bad=" << s.bad() << '\n';
 }

Output:
 a
 Unformatted output: fail=0 bad=1
 Formatted output: fail=1 bad=1

See also
   operator<<(std::basic_ostream) inserts character data or insert into rvalue stream
                        (function template)
   write inserts blocks of characters
                        (public member function)