#include <iostream> #include <streambuf> #include <locale> #include <cstdio> class outbuf : public std::streambuf { protected: /* central output function * - print characters in uppercase mode */ virtual int_type overflow (int_type c) { if (c != EOF) { // Convert lowercase to uppercase c = std::toupper(c,getloc()); // and write the character to the standard output. if (putchar(c) == EOF) { return EOF; } } return c; } }; int main() { outbuf ob; // Create special output buffer. std::ostream out(&ob); // Initialize output stream with that output buffer. out << "31 hexadecimal: " << std::hex << 31 << std::endl; }