[std::ends](<http://en.cppreference.com/w/cpp/io/manip/ends>) - inserts a null character '\\0' to output stream. More formally this manipulator’s declaration looks like

template <class charT, class traits>
std::basic_ostream<charT, traits>& ends(std::basic_ostream<charT, traits>& os);

and this manipulator places character by calling os.put(charT()) when used in an expressionos << std::ends;

[std::endl](<http://en.cppreference.com/w/cpp/io/manip/endl>) and [std::flush](<http://en.cppreference.com/w/cpp/io/manip/flush>) both flush output stream out by calling out.flush(). It causes immediately producing output. But std::endl inserts end of line '\\n' symbol before flushing.

std::cout << "First line." << std::endl << "Second line. " << std::flush
          << "Still second line.";
// Output: First line.
// Second line. Still second line.

[std::setfill(c)](<http://en.cppreference.com/w/cpp/io/manip/setfill>) - changes the fill character to c. Often used with std::setw.

std::cout << "\\nDefault fill: " << std::setw(10) << 79 << '\\n'
          << "setfill('#'): " << std::setfill('#')
          << std::setw(10) << 42 << '\\n';
// Output:
// Default fill:         79
// setfill('#'): ########79

[std::put_money(mon[, intl])](<http://en.cppreference.com/w/cpp/io/manip/put_money>) [C++11]. In an expression out << std::put_money(mon, intl), converts the monetary value mon (of long double or std::basic_string type) to its character representation as specified by the [std::money_put](<http://en.cppreference.com/w/cpp/locale/money_put>) facet of the locale currently imbued in out. Use international currency strings if intl is true, use currency symbols otherwise.

long double money = 123.45;
// or std::string money = "123.45";
 
std::cout.imbue(std::locale("en_US.utf8"));
std::cout << std::showbase << "en_US: " << std::put_money(money)
          << " or " << std::put_money(money, true) << '\\n';
// Output: en_US: $1.23 or USD  1.23
 
std::cout.imbue(std::locale("ru_RU.utf8"));
std::cout << "ru_RU: " << std::put_money(money)
          << " or " << std::put_money(money, true) << '\\n';
// Output: ru_RU: 1.23 руб or 1.23 RUB 
 
std::cout.imbue(std::locale("ja_JP.utf8"));
std::cout << "ja_JP: " << std::put_money(money)
          << " or " << std::put_money(money, true) << '\\n';
// Output: ja_JP: ¥123 or JPY  123

[std::put_time(tmb, fmt)](<http://en.cppreference.com/w/cpp/io/manip/put_time>) [C++11] - formats and outputs a date/time value to std::tm according to the specified format fmt.

tmb - pointer to the calendar time structure const std::tm* as obtained from localtime() or gmtime(). fmt - pointer to a null-terminated string const CharT* specifying the format of conversion.

#include <ctime>
...

std::time_t t = std::time(nullptr);
std::tm tm = *std::localtime(&t);

std::cout.imbue(std::locale("ru_RU.utf8"));
std::cout << "\\nru_RU: " << std::put_time(&tm, "%c %Z") << '\\n';
// Possible output:
// ru_RU: Вт 04 июл 2017 15:08:35 UTC