輸出流操作器
std::ends
- 將空字元'\0'
插入輸出流。更正式地說這個操作者的宣告看起來像
template <class charT, class traits>
std::basic_ostream<charT, traits>& ends(std::basic_ostream<charT, traits>& os);
當在表示式
os << std::ends;
中使用時,這個操作器通過呼叫 os.put(charT())
來放置角色
std::endl
和 std::flush
都通過呼叫 out.flush()
來重新整理輸出流 out
。它會立即產生輸出。但是 std::endl
在沖洗之前插入了線端'\n'
符號。
std::cout << "First line." << std::endl << "Second line. " << std::flush
<< "Still second line.";
// Output: First line.
// Second line. Still second line.
std::setfill(c)
- 將填充字元更改為 c
。常用於 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])
[C++ 11]。在表示式 out << std::put_money(mon, intl)
中,將貨幣值 mon
(long double
或 std::basic_string
型別)轉換為其字元表示形式,由當前在 out
中出現的語言環境的 std::money_put
方面指定。如果 intl
是 true
,請使用國際貨幣字串,否則使用貨幣符號。
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)
[C++ 11] - 根據指定的格式 fmt
格式化並輸出日期/時間值到 std::tm
。
tmb
- 指向從 localtime()
或 gmtime()
獲得的日曆時間結構 const std::tm*
的指標。
fmt
- 指向以 null 結尾的字串 const CharT*
的指標,指定轉換的格式。
#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
有關更多資訊,請參閱上面的連結。