【发布时间】:2013-05-28 08:22:26
【问题描述】:
我在一个类中有这个公共函数,我正在做的是将一个字符串逐个字符附加到另一个字符串(因为我也在对字符进行一些检查)。所以,它基本上是这样的:
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",但它也不起作用,而且闻起来像一些指针问题。会是什么?
【问题讨论】:
-
您将一个类对象传递给一个可变参数 C 函数 (
wprintf_s);这不是一个好主意。 -
那只是为了测试。我会删除它。也许我应该为此使用另一个函数,然后
-
@ali,
std::wcout << "String: " << newtext << "\n";
标签: c++ string crash char append