std::basic_ostream<CharT,Traits>::put (3) - Linux Manuals

std::basic_ostream<CharT,Traits>::put: std::basic_ostream<CharT,Traits>::put


std::basic_ostream<CharT,Traits>::put - std::basic_ostream<CharT,Traits>::put


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.


ch - character to write

Return value



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.


// Run this code

  #include <fstream>
  #include <iostream>

  int main()
      std::cout.put('a'); // normal usage

      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';
      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';


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

See also

                               inserts character data
operator<<(std::basic_ostream) (function template)
                               inserts blocks of characters
write (public member function)