在调试器上的 CStringArray 中显示元素一再一?

Display element in CStringArray on Debugger one bye one?

此代码每次都在调试器中显示 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我刚用过调试器。

这是一个简单的代码,它打印猫和狗。它不会打印 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.

来查看它

使用

for (int i = 0; i < arr.Count(); i++)
    {
        cout<<arr.GatAt(i)<<endl;
    }

cout<<"arr[i]"<<endl; //这将打印普通字符串,即 arr[i]

您无法在“汽车”或“本地”视图中执行此操作,但您可以在“监视”视图中执行此操作。添加到观看视图 arr.m_pData,3。此处值 2 就足够了,但让我们看看如果您输入更大的数字会发生什么。当您在 Watch 视图中展开名称时,您将能够看到三个项目。前两个是 CatDog,第三个很可能是“”。

还有一种方法可以告诉 Visual Studio 如何正确显示 CStringArray 变量,但您必须进行一些更改,如 .[=15 中所述=]