c++ - 替代 CString::Format?

标签 c++ string mfc format

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

最佳答案

CStringprintf 风格的格式化提供了 Format 方法,但这不是类型安全的。

对于类型安全的字符串格式,您可以使用 std::stringstream/std::wstringstreamBoost 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/

相关文章:

C++ 类格式 - Qt creator 5.2.1

c++ - 不会被优化掉的最简单的 "unused"代码是什么?

javascript - 如何在 jquery 中用多个字符串作为分隔符拆分一个字符串

c++ - 为什么套接字(AF_INET、SOCK_DGRAM、IPPROTO_UDP)会失败?

c++ - 更改字符集后 MFC 应用程序的视觉外观发生变化

c++ - boost::bind 和插入 boost::unordered_map

c++ - 如何获取Firefox的一些默认配置信息?

c - 通过动态分配的结构变量获取用户输入的字符串

c# - asp.net MVC 中同一 Controller 和 View 上的多个操作

c++ - 微软运行时库