共用方式為


字串和格式設定 (現代的 C++) 的 I/O

C++ iostreams 相當麻煩的為格式化字串 I/O 使用。或者,您可以使用從提升 C++ 程式庫的 Boost.Format,,即使它是非標準的。您可以從這個 提升 網站的所有提升程式庫。

Boost.Format 的優點包括:

  • 安全:型別安全和擲回錯誤 (例如、很少的規格或許多項目的例外狀況。

  • 可延伸的:如需可以進行資料流處理的任何類型的工作。

  • 方便:標準 Posix 和類似的格式字串。

雖然 Boost.Format 在 C++ iostreams所建置,是安全且可擴充的,所以有效能最佳化。當您需要效能最佳化時,請考慮 C# printfsprintf,是快速且容易使用的。然而,它們從弱點無法擴充或安全。(安全版本存在,但是,產生一項些微的效能損失。如需詳細資訊,請參閱 printf_s、 _printf_s_l、 wprintf_s、 _wprintf_s_lsprintf_s、 _sprintf_s_l、 swprintf_s、 _swprintf_s_l)。

下列程式碼示範某些提升格式化功能。

    string s = str( format("%2% %2% %1%\n") % "world" % "hello" );
    // s contains "hello hello world"  
 
    for( auto i = 0; i < names.size(); ++i )
        cout << format("%1% %2% %|40t|%3%\n") % first[i] % last[i] % tel[i];
    // Georges Benjamin Clemenceau             +33 (0) 123 456 789
    // Jean de Lattre de Tassigny              +33 (0) 987 654 321

請參閱

其他資源

歡迎回到 C++ (現代的 C++)

C + + 語言參考

標準 C++ 程式庫參考