[解決済み] C++でbooleanを印刷すると、何が表示されますか?
質問
を印刷します。
bool
をこのように出力する。
#include <iostream>
int main()
{
std::cout << false << std::endl;
}
規格はストリーム上で特定の結果を要求しているか(例えば
0
に対して
false
)?
解決方法は?
標準的なストリームには
boolalpha
フラグは、何を表示するかを決めるものです。
0
と
1
. trueの場合は、以下のように表示されます。
false
と
true
.
また
std::boolalpha
マニピュレータでフラグを設定するので、これ。
#include <iostream>
#include <iomanip>
int main() {
std::cout<<false<<"\n";
std::cout << std::boolalpha;
std::cout<<false<<"\n";
return 0;
}
...のような出力が得られます。
0
false
ちなみに、実際に生成される単語は
boolalpha
がtrueに設定されると、ローカライズされる--ということです。
<locale>
には
num_put
カテゴリは数値の変換を行うので、ストリームに正しいロケールを設定すれば、次のように出力することができます。
true
と
false
を、そのロケールで表現されるようにします。例えば
#include <iostream>
#include <iomanip>
#include <locale>
int main() {
std::cout.imbue(std::locale("fr"));
std::cout << false << "\n";
std::cout << std::boolalpha;
std::cout << false << "\n";
return 0;
}
...そして少なくとも理論的には(コンパイラや標準ライブラリが "fr" を "French" の識別子として受け入れると仮定して)、次のように表示されるかもしれません。
faux
ではなく
false
. しかし、これに対する実際のサポートはせいぜいバラバラで、Dinkumware/Microsoft ライブラリでさえ(この点では通常かなり優れている)、以下のように印刷されることを付け加えておかなければなりません。
false
は、私がチェックしたすべての言語についてです。
使用される名前は
numpunct
ファセットを作成する必要があります。
numpunct
ファセットで行います。例えば、フランス語に対して少なくとも合理的な精度を持つものは、次のようになります(私はそう信じています)。
#include <array>
#include <string>
#include <locale>
#include <ios>
#include <iostream>
class my_fr : public std::numpunct< char > {
protected:
char do_decimal_point() const { return ','; }
char do_thousands_sep() const { return '.'; }
std::string do_grouping() const { return "\3"; }
std::string do_truename() const { return "vrai"; }
std::string do_falsename() const { return "faux"; }
};
int main() {
std::cout.imbue(std::locale(std::locale(), new my_fr));
std::cout << false << "\n";
std::cout << std::boolalpha;
std::cout << false << "\n";
return 0;
}
そして、その結果は、(おそらく皆さんが予想されるように)。
0
faux
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?