接下来的步骤是什么来调试为什么我尝试打印的内容在我的终端中没有显示?

问题描述 投票:0回答:1

我正在使用 Visual Studio Code 完成 C++ 课程,并试图完成部分挑战。问题是,我的

cout
都没有显示任何内容。

这些是我的代码的不同部分。

#include <iostream>

using namespace std;

#pragma region Function Prototypes

int *apply_all(int arr1 [], size_t size1, int arr2 [], size_t size2);
void print(const int array[], int array_size);

#pragma endregion
int main()
{
    int array1[] {1, 2, 3, 4, 5};
    int array2[] {10, 20, 30};

    cout << array1 << endl;
    cout << "Print" << endl;


    // This determines the size of the array (the number of element).
    size_t array1_size = sizeof(array1) / sizeof(array1[0]);
    size_t array2_size = sizeof(array2) / sizeof(array2[0]);


    int *results = apply_all(array1, array1_size, array2, array2_size);


    print(results, array1_size * array2_size);


    delete[] results;

    return 0;
}
int *apply_all(int arr1[], size_t size1, int arr2[], size_t size2)
{
    size_t const array_size {size1 * size2};
    int *array_results = new int[array_size];
    int new_array_index {0};

    for (size_t i {0}; i < size1; ++i)
    {
        for (size_t j {0}; j < size2; ++j)
        {
            array_results[new_array_index] = arr1[i] * arr2[j];
            cout << arr1[i] * arr2[j] << endl;
            ++new_array_index;
        }
    }
    return array_results;
}
void print(const int array[], int array_size)
{
    for (int i {0}; i < array_size; ++i)
    {
        cout << array[i] << " ";
    }
    cout << endl;
}

正如您在我的函数和

main
方法中看到的那样,我已将
cout
设置为打印某些内容。它们都没有在终端中显示任何内容。从逻辑上讲,我应该得到一些东西,除非有一些我不知道的东西。

我不确定这是否有帮助,但是当我运行我的程序时,这就是我的终端中显示的全部内容

PS C:\Users\Me\Workspaces\Udemy-CPP-Course-1>  & 'c:\Users\Me\.vscode\extensions\ms-vscode.cpptools-1.20.5-win32-x64\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-5y04hemj.h0d' '--stdout=Microsoft-MIEngine-Out-eu5yk1st.ktm' '--stderr=Microsoft-MIEngine-Error-y4av4ltd.u2b' '--pid=Microsoft-MIEngine-Pid-od1vghvl.444' '--dbgExe=C:\mingw64\bin\gdb.exe' '--interpreter=mi'

我尝试运行过去显示某些内容的其他文件,但现在它们似乎都存在此问题,所以至少,我知道这不是本节挑战的代码中的内容。

编辑:

有人建议查看这篇文章,但调试中有人建议您删除文件的目录对我来说似乎不存在。具体来说,这个目录:

%USERPROFILE%.vscode\extensions\ms-vscode.cpptools-1.6.0-insiders

这是我发现的不同之处。我一直将所有更改推送到 GitHub 上的存储库,并且我注意到它一直试图告诉我将更改推送到我以前从未见过的文件。这是明显已更改的文件列表。

  • 项目设置.json
  • slnx.sqlite
  • VSWorkspaceState.json
  • 浏览.VC.db
  • 文档布局.json
  • .wsuo
  • 三个单独的文件,其中包含数字、字母和破折号 以“.vsidx”结尾

根据另一位用户的推荐,我还尝试从单独的命令行窗口运行代码,代码运行得很好,完全显示了我所期望的内容。

如果到了紧要关头,我愿意删除并重新安装 VS Code,但我宁愿避免这种情况,这样我就不需要重新安装所有现有的扩展,也不需要按照我喜欢的方式进行设置。

有人对下一步该做什么有什么建议吗?

c++ debugging cout
1个回答
0
投票

您可以从问题中删除源代码,它会分散您的注意力(或将其替换为“Hello World!”)。你的问题出在设置上。

您有两种主要方法可以解决此问题:使用全新的(可能是并行的)VS Code 安装并重新创建您的首选配置,注意哪一步使其停止工作(如果有的话);或者将您现有的安装恢复到上次工作的原始状态,一步一步,直到它再次工作,希望如此。

您明确表示您不想重新安装。这给你留下了第二个选择。当您开始更改现有安装时,请关注那些可能会重定向输出的事情。例如,重定向

'--stdout=Microsoft-MIEngine-Out-eu5yk1st.ktm'
似乎可能尝试连接到调试器,但那里出现了问题。我根本不懂 VS Code,所以我的建议只能是一般性的,但是:

  • 尝试切换到“Release”配置。这可能不会尝试启动调试器。
  • 尝试切换到另一个工具链,例如从 MinGW 到 msvc,反之亦然。
© www.soinside.com 2019 - 2024. All rights reserved.