Namespaces
Variants
Views
Actions

std::basic_ostream::put

From cppreference.com
< cpp‎ | io‎ | basic ostream
Revision as of 07:21, 30 November 2012 by Cubbi (Talk | contribs)

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.

Contents

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

#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

Template:cpp/io/basic ostream/dcl list operator ltlt2Template:cpp/io/basic ostream/dcl list write