CString
предлагает метод Format
для форматирования в стиле printf
, но это не безопасно для типов.
Для безопасного строкового форматирования вы можете использовать библиотеку std::stringstream
/ std::wstringstream
или Boost Format , хотя обе они работают с шаблоном класса C ++ std::basic_string
, а не с MFC CString
класс. Я успешно использовал оба из них в VC6.
Boost Format удобен тем, что позволяет вам использовать printf
-подобный синтаксис и будет выдавать исключение, если введенные вами аргументы не соответствуют строке формата, тогда как форматирование строки с помощью Cost iostreams делает ваш код вполне многословный.
Обратите внимание, что вы можете создать CString
объект из std::string
следующим образом:
std::string s;
CString str( s.c_str() );
Надеюсь, это поможет!