我在一个类中有这个公共(public)函数,我正在做的是通过char将一个字符串追加到另一个字符串char(因为我也在对字符进行一些检查)。因此,基本上看起来像这样:
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: %s\n", newtext);
}
}
因此,如果我注释了
wprintf_s
行,则程序不会崩溃,但是如果我想测试并查看使用它添加到newtext中的内容,它将崩溃。我试图添加"\0\n"
,但是它也不起作用,并且闻起来有点指针问题。会是什么呢? 最佳答案
我猜想在newtext.c_str()
内与%s
类型说明符一起使用时,应该使用printf
将其转换为普通的C字符串。