字符串和I/O格式设置(现代C++)
C++ (mfc) 会相当麻烦的格式设置的字符串 I/O 使用。 或者,可以使用从引发 C++ 库的 Boost.Format,因此,即使它是排列。 您可以从该 引发 网站的所有引发库。
Boost.Format 的某些优点为:
安全:类型安全和引发错误 (例如、很少的规范或多个项的异常。
可扩展:可以将流的任何类型的 Works。
方便:标准 POSIX 以及类似的格式字符串。
虽然 Boost.Format 在 C++ (mfc)编译,是安全且可扩展的,它们不性能优化。 当需要性能优化时,请考虑 C printf 和 sprintf,是快速易用。 但是,它们从漏洞是不可展开或安全的。 (安全版本存在,但是,它们会导致细微的性能损失。 有关更多信息,请参见 printf_s, _printf_s_l, wprintf_s, _wprintf_s_l 和 sprintf_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