我在一个类中有这个公共函数,我所做的是将一个字符串逐字加到另一个字符串上(因为我也对字符进行了一些检查)。它看起来是这样的:
void mystring::copy(wstring oldtext) {
wstring newtext;
for (unsigned int i=0; i<oldtext.length(); ++i) {
// Doing some checking ...
// I also used newtext.append(1, oldtext[i]);
newtext += oldtext[i];
// Just testing
wprintf_s(L"String: %sn", newtext);
}
}
因此,如果我注释wprintf_s
行,程序不会崩溃,但是如果我想测试并查看使用它向newtext添加了什么,它就会崩溃。我试图添加" n"
,但它也不工作,它闻起来像一些指针问题。会是什么呢? 我想你应该使用newtext.c_str()
将其转换为正常的C字符串,当使用printf
内的%s
类型说明符时。