首頁  >  文章  >  後端開發  >  如何像 printf_s 一樣使用 std::ostream 實現精確格式化?

如何像 printf_s 一樣使用 std::ostream 實現精確格式化?

Linda Hamilton
Linda Hamilton原創
2024-10-30 04:30:28274瀏覽

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 用於以特定精度和寬度格式化和列印雙精度型 my_double。 std::ostream 中的等效功能可以使用串流操縱器來實現。

要使用std::cout 輸出“42.000000”,請依序套用這些操縱器:

std:: fixed:設定定點表示法而不是科學表示法。

std::setw(11):將輸出欄位的寬度設為 11 個字元。

std::set precision(6):指定小數點後要顯示的位數。

正確的程式碼變成:

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

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

這樣該方法允許使用std::ostream 精確格式化雙精確度值,而無需求助於第三方程式庫或自訂字串操作。

有關 std::ostream 格式化的全面參考,請參閱 C 標準庫文檔,特別是「流操縱器」部分。

以上是如何像 printf_s 一樣使用 std::ostream 實現精確格式化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn