Alternative to CString::Format?(CString::Format 的替代方案?)
问题描述
在 VC6 中进行字符串格式化是否有更好的替代方法,在替换之前进行语法检查?
Is there any better alternative for doing string formatting in VC6, with syntax checking before substitution?
推荐答案
CString
为 printf
样式的格式提供了 Format
方法,但是这不是类型安全的.
CString
offers the Format
method for printf
-style formatting, but this isn't type-safe.
对于类型安全的字符串格式,您可以使用 std::stringstream
/std::wstringstream
或 Boost Format 库,尽管它们都适用于 C++ std::basic_string
类模板,而不是 MFC CString
类.我已经在 VC6 中成功使用了这两个.
For type-safe string formatting you could either use std::stringstream
/ std::wstringstream
or the Boost Format library, although these both work with the C++ std::basic_string
class template, and not the MFC CString
class. I've used both of these successfully in VC6.
Boost Format 很好,因为它允许您使用类似 printf
的语法,并且如果您提供的参数与格式字符串不匹配,则会抛出异常,而使用 C++ iostreams 进行字符串格式化往往使您的代码非常冗长.
Boost Format is nice because it allows you to use printf
-like syntax, and will throw an exception if the arguments you supply don't match the format string, whereas string formatting with C++ iostreams tends to make your code quite verbose.
请注意,您可以从 std::string
创建一个 CString
对象,如下所示:
Note that you can create a CString
object from a std::string
as follows:
std::string s;
CString str( s.c_str() );
我希望这会有所帮助!
这篇关于CString::Format 的替代方案?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:CString::Format 的替代方案?
基础教程推荐
- 如何使图像调整大小以在 Qt 中缩放? 2021-01-01
- 管理共享内存应该分配多少内存?(助推) 2022-12-07
- 如何“在 Finder 中显示"或“在资源管理器中显 2021-01-01
- 使用从字符串中提取的参数调用函数 2022-01-01
- 为什么语句不能出现在命名空间范围内? 2021-01-01
- 在 C++ 中循环遍历所有 Lua 全局变量 2021-01-01
- 为 C/C++ 中的项目的 makefile 生成依赖项 2022-01-01
- 从 std::cin 读取密码 2021-01-01
- Windows Media Foundation 录制音频 2021-01-01
- 如何在不破坏 vtbl 的情况下做相当于 memset(this, ...) 的操作? 2022-01-01