CString :: Format的替代品?

yes*_*aaj 3 c++ string format mfc

在VC6中进行字符串格式化是否有更好的替代方法,在替换之前进行语法检查?

Chr*_*isN 10

CString提供了样式格式化的Format方法printf,但这不是类型安全的.

对于类型安全的字符串格式,您可以使用std::stringstream/ std::wstringstreamBoost格式库,尽管这些都适用于C++ std::basic_string类模板,而不是MFC CString类.我已经在VC6中成功使用了这两个.

Boost格式很好,因为它允许你使用printf类似语法,并且如果你提供的参数与格式字符串不匹配将抛出异常,而使用C++ iostreams的字符串格式化往往会使你的代码非常冗长.

请注意,您可以按如下方式创建CString对象std::string:

std::string s;
CString str( s.c_str() );
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!