此代码每次都在调试器中显示Cat。第一次和第二次。但我想在调试器中第一次显示Cat,然后在第二次调试器中显示Dog。
int main(){
CStringArray arr;
arr.Add("Cat");
arr.Add("Dog");
for (int i = 0; i < arr.GetSize(); i++)
{
cout<<"arr[i]"<<endl;
}
return 0;*
}
忘记cout
我刚使用了调试器。
答案 0 :(得分:0)
这是一个简单的代码,它打印猫和狗。它不会打印Cat,Cat,除非你在其他地方有错误。您在寻找TRACE
还是OutputDebugString
?
CStringArray arr;
arr.Add("Cat");
arr.Add("Dog");
for (int i = 0; i < arr.GetSize(); i++)
{
const char *temp = arr[i];
TRACE("%s\n", arr[i]);//add break point here to look at temp
//or
//OutputDebugString(arr[i]);
//OutputDebugString("\n");
}
ps,我想你想使用断点并动态查看arr[i]
。您可以使用const char *temp = arr[i]
它将使第n个元素可见。否则我不知道。
pss,调试功能Autos可能不会在temp
显示值,具体取决于您放置断点的位置,因为它会自动做出决策。但是你应该只需将鼠标移动到temp
即可查看它。
答案 1 :(得分:0)
使用
for (int i = 0; i < arr.Count(); i++)
{
cout<<arr.GatAt(i)<<endl;
}
cout<<"arr[i]"<<endl;
//这将打印正常字符串,即arr[i]
答案 2 :(得分:0)
您无法在 Autos 或 Locals 视图中执行此操作,但可以在 Watch 视图中执行此操作。添加到观看视图 arr.m_pData,3
。值 2 在这里就足够了,但是让我们看看如果输入更大的数字会发生什么。当您在 Watch 视图中展开名称时,您将能够看到三个项目。前两个将是 Cat
和 Dog
,第三个很可能是“
还有一种方法可以告诉 Visual Studio 如何正确显示 CStringArray
变量,但您必须进行一些更改,如 another answer 中所述。