各出力ストリームには、プレシジョンメンバー関数があります。特定の出力ストリームに対してプレシジョン関数が呼び出されると、ストリームに小数点付きの数値を出力するときに、合計2桁の有効桁数が予約されるか、小数点以下2桁が予約されます。特定の実装方法コンパイラによって決定されます。精度関数は、指定されたストリームに対してのみ有効です。
setfメンバー関数は、set形式ではなく、setフラグの略です。これは、別の方法で1つのことを行うための指示です。
ios :: fixedフラグを使用すると、ストリームはe表記を使用する代わりに、固定ポイント表記を使用してダブルタイプの数値を出力します。
ios :: showpointフラグでは、ストリームが常に浮動小数点数に小数点を含める必要があります。
ios :: Scientificフラグは、電子表記で数値を出力します。
ios :: showposは、正の整数の前に+記号を出力します
ios :: rightフラグが使用され、widthがフィールド幅を指定するために使用される場合、出力の次の項目は右揃えになります。デフォルトはこれです
ios :: leftフラグが使用され、widthがフィールド幅を指定するために使用される場合、次の出力項目は、フィールド幅を設定するためのwidthメンバー関数と左揃えになります。例えば:
cout << "a";
cout.width(4);
cout << 7 << endl;
次に、7を出力します。システムはデフォルトでios :: rightを設定して右揃えにするため、aと7の間には3つのスペースがあります。
幅メンバー関数は、次に出力する項目にのみ適していることに注意してください。複数の項目を出力する場合は、widthを複数回呼び出す必要があります。面倒な場合は、ストリーム操作要素setwを使用できます。
設定されているフラグは、unsetfメンバー関数を呼び出すことでキャンセルできます。次に例を示します。
cout.unsetf(ios::showpos);
正の整数の前の+記号をキャンセルできます。
setwおよびsetprecisionマニピュレータ。
操纵元是以非传统的方式调用的函数。操纵元位于插入操作符 << 之后。两个操纵元均在 iomanip 库中,要想使用,需要调用该库。
setwマニピュレータはwidthメンバー関数と同じ機能です。フィールド幅を複数回設定する場合は、setwマニピュレータを複数回呼び出す必要があります。実際、setwマニピュレータはwidthメンバー関数を呼び出します。次のコード:
cout << "a" << set(5) << 1
<< set(5) << 2
<< set(7) << 3 << endl;
この文の出力は次のとおりです。a123。1、2の前に4つのスペースがあり、3の前に6つのスペースがあります。
setprecision 操纵元和 precision 成员函数功能一样。如下代码:
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout << "a" << setprecision(2) << 1.2
<< 2.3 << endl;
setprecisionマニピュレータは、精度メンバー関数と同じで、設定後は常に有効です。上記の例の出力:1.202.30。
あなたが学んだことを適用することはより良いです、そして上記に欠点があるかもしれません、議論を指摘することを歓迎します。
(より無料のC / C ++、Linux、Nginx、ZeroMQ、MySQL、Redis、fastdfs、MongoDB、ZK、ストリーミングメディア、CDN、P2P、K8S、Docker、TCP / IP、coroutine、DPDKなど。複数のナレッジポイントが乾物学習教材とグループ960994558)