ホームページ  >  記事  >  バックエンド開発  >  printf_s のような std::ostream で正確な書式設定を実現するにはどうすればよいですか?

printf_s のような std::ostream で正確な書式設定を実現するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-30 04:30:28272ブラウズ

How to achieve precise formatting with std::ostream like printf_s?

std::ostream を使用した正確なフォーマット

std::cout を使用して正確なフォーマットを実現するにはどうすればよいですか?次の例を考えてみましょう。

<code class="cpp">double my_double = 42.0;
char str[12];
printf_s("%11.6lf", my_double); // Prints " 42.000000"</code>

このコードでは、printf_s を使用して double my_double を特定の精度と幅でフォーマットして出力します。 std::ostream の同等の機能は、ストリーム マニピュレータを使用して実現できます。

std::cout を使用して「42.000000」を出力するには、これらのマニピュレータを順番に適用します。

std:: fix: 科学表記法ではなく固定小数点表記法を設定します。

std::setw(11): 出力フィールドの幅を 11 文字に設定します。

std::setprecision(6): 小数点の後に表示する桁数を指定します。

正しいコードは次のようになります。

<code class="cpp">#include <iomanip>

std::cout << std::fixed << std::setw(11) << std::setprecision(6) << my_double;</code>

これこのアプローチにより、サードパーティのライブラリやカスタム文字列操作に頼ることなく、std::ostream を使用して double 値を正確にフォーマットできます。

std::ostream のフォーマットに関する包括的なリファレンスについては、C 標準ライブラリのドキュメントを参照してください。特に「ストリーム マニピュレータ」に関するセクション。

以上がprintf_s のような std::ostream で正確な書式設定を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。