字符串和I/O格式设置(现代C++)

C++ (mfc) 会相当麻烦的格式设置的字符串 I/O 使用。 或者,可以使用从引发 C++ 库的 Boost.Format,因此,即使它是排列。 您可以从该 引发 网站的所有引发库。

Boost.Format 的某些优点为:

  • 安全:类型安全和引发错误 (例如、很少的规范或多个项的异常。

  • 可扩展:可以将流的任何类型的 Works。

  • 方便:标准 POSIX 以及类似的格式字符串。

虽然 Boost.Format 在 C++ (mfc)编译,是安全且可扩展的,它们不性能优化。 当需要性能优化时,请考虑 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++库参考