我在一个类中有这个公共(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字符串。

10-06 09:09