在 VC6 中进行字符串格式化,在替换前进行语法检查,是否有更好的选择?
最佳答案
CString
为 printf
风格的格式化提供了 Format
方法,但这不是类型安全的。
对于类型安全的字符串格式,您可以使用 std::stringstream
/std::wstringstream
或 Boost Format库,尽管它们都适用于 C++ std::basic_string
类模板,而不适用于 MFC CString
类。我已经在 VC6 中成功地使用了这两个。
Boost Format 很好,因为它允许您使用类似 printf
的语法,并且如果您提供的参数与格式字符串不匹配,则会抛出异常,而使用 C++ iostreams 的字符串格式倾向于使您的代码非常冗长。
请注意,您可以从 std::string
创建一个 CString
对象,如下所示:
std::string s;
CString str( s.c_str() );
希望对您有所帮助!
关于c++ - 替代 CString::Format?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/404886/