2016-04-01 5 views
-2

こんにちは誰も次のC++コードの結果を説明できますか?C++ boolalpha confusion

input: true false 1 
output: false, true, true, 

#include <iostream> 
using namespace std; 
int main() 
{ 
    bool c1, c2, c3; 
    cin >> c1 >> c2 >> c3; 
    cout << boolalpha << c1 << ", " << c2 << ", " << c3 << ", " << endl;//LINE I 
    return 0; 
} 
+1

[cppreference.com](http://en.cppreference.com/w/cpp/io/manip/boolalpha) – robsn

+0

ゼロダウンのためのDownvote。 – user4581301

答えて

2

here

  • を参照してくださいstr.setf(STD :: ios_baseを呼び出しているかのようにストリームSTR中boolalphaフラグを有効にします:: boolalpha

は、必ず最初にマニュアルを参照してください。

0

あなたが操作しているistreamオブジェクト(cinここ)では、への入力には0または1が必要です、あなたの入力はtrueとなっています。これにより操作が失敗し、にfailbitを設定すると、入力が失敗したことを確認しないので、次の2つの割り当てがc2c3になり、代わりにスキップされます。したがって、入力操作が失敗したため、c1はfalseです。 c2およびc3は変更も初期化もされておらず、したがって任意の値を持つことができます。