解决方案可能很明显,但我看不到。我有这个简单的C++代码:
// Build the search pattern
// sPath is passed in as a parameter into this function
trim_right_if(sPath, is_any_of(L"\\"));
wstring sSearchPattern = sPath + L"\\*.*";
我的问题是+运算符没有作用(在调试器中检查)。字符串
sSearchPattern
仅初始化为sPath
的值。注意:
sPath
是wstring
。我要实现的示例:
sSearchPattern -> C:\SomePath\*.*
更多信息:
当我在调试器中查看sPath时,在最后一个字符之后看到两个NULL字符。当我查看sSearchPattern时,将附加“\ *。*”,但在两个NULL字符之后。有什么解释吗?
最佳答案
这应该工作,并且确实对我在VS2010 SP1上有效:
#include <iostream>
#include <string>
int main()
{
const std::wstring sPath = L"C:\\SomePath";
const std::wstring sSearchPattern = sPath + L"\\*.*";
std::wcout << sSearchPattern << L'\n';
return 0;
}
此打印
C:\SomePath\*.*
为了我。