1

我在一个类中有这个公共函数,我正在做的是将一个字符串逐个字符附加到另一个字符串(因为我也在对字符进行一些检查)。所以,它基本上看起来像这样:

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",但它也不起作用,它闻起来像一些指针问题。会是什么呢?

4

1 回答 1

5

我猜你应该使用它与 a内的类型说明符一起使用newtext.c_str()时将其转换为普通的 C 字符串。%sprintf

于 2013-06-01T17:48:33.550 回答