在 VC6 中进行字符串格式化是否有更好的替代方法,在替换之前进行语法检查?
rajKumar
问问题
4768 次
3 回答
10
CString
提供了-style 格式化的Format
方法printf
,但这不是类型安全的。
对于类型安全的字符串格式化,您可以使用std::stringstream
/std::wstringstream
或Boost Format库,尽管它们都适用于 C++std::basic_string
类模板,而不是 MFCCString
类。我已经在 VC6 中成功地使用了这两种方法。
Boost Format 很好,因为它允许您使用printf
-like 语法,并且如果您提供的参数与格式字符串不匹配,则会引发异常,而使用 C++ iostreams 的字符串格式往往会使您的代码非常冗长。
请注意,您可以从 a 创建CString
对象,std::string
如下所示:
std::string s;
CString str( s.c_str() );
我希望这有帮助!
于 2009-01-01T12:41:44.893 回答
1
查看FastFormat。它有一个简单的语法和一个“接收器”——FastFormat 术语,用于接收格式化操作的结果——用于 CString。
类似于以下内容:
int i = 1;
std::string ss = "a std string";
CString cs = "a Cstring";
CString result;
fastformat::fmt(result, "i={0}, ss={1}, cs={2}", i, ss, cs);
于 2009-05-09T23:51:57.190 回答
0
FormatString - 智能字符串格式化
作者:Ivo Beltchev
发表在 CodeProject
于 2009-02-24T03:46:53.877 回答