ブール値のカウントによって生成された出力をどのように大文字にしますか。
私がした場合、私はそれを知っています:
cout << boolalpha << true;
それは出力します
true
出力するにはどうすればよいですか
True
do_truename と do_falsename に関係があると感じていますが、どうすればよいかわかりません。
ブール値のカウントによって生成された出力をどのように大文字にしますか。
私がした場合、私はそれを知っています:
cout << boolalpha << true;
それは出力します
true
出力するにはどうすればよいですか
True
do_truename と do_falsename に関係があると感じていますが、どうすればよいかわかりません。
つかの間、これは を使用して実行できると思いましたstd::uppercase
が、そうではないようです。これらは、16 進数や指数などにのみ適用されます。したがって、確かにstd::numpunct<char>
オーバーライドが必要なようですが、それほど悪くはありません。
#include <iostream>
#include <locale>
struct numpunct
: std::numpunct<char>
{
std::string do_truename() const { return "True"; }
std::string do_falsename() const { return "False"; }
};
int main()
{
std::locale loc(std::cout.getloc(), new numpunct);
std::cout.imbue(loc);
std::cout << std::boolalpha << true << "\n";
}