【问题标题】:VS,C++. No errors in the Code Editor however when debugging, the Output Window has lots of errors that don't make senseVS,C++。代码编辑器中没有错误但是在调试时,输出窗口有很多没有意义的错误
【发布时间】:2020-07-30 15:57:47
【问题描述】:

所以我在代码编辑器窗口中编写了一个程序,当检查它时,一切都说得通。没有错误(红色波浪线),我理解那里的警告/建议。

然后我去构建代码并运行它,它不会运行,因为它发现了错误。在撰写本文时,其中有 29 个。它在输出窗口中显示它们。最糟糕的部分是代码编辑器本身不显示相应的错误。输出窗口会在第 13 行说是一个错误,但我会去那里,代码编辑器说一切都很好,没有错误。那么哪个是正确的呢?

几个例子: 我有一个向量类

vector<Point>points;

编辑器说没问题,但是输出窗口显示 "error: missing ';'在“”之前,所以在纸上它要我修复它

vector;<Point>points;

但这显然是错误的,然后编辑器也将其突出显示为错误。其他错误也没有意义。我有一个函数叫

string toString(){}

输出窗口将再次显示 "error: missing '('" 但是没有完整的功能没有丢失位。

我如何让代码编辑器和输出窗口协同工作并显示实际存在的错误,因为现在它们相互冲突。

【问题讨论】:

  • 请显示minimal reproducible example。检查是否包含所有内容,不要忘记std::using namespace std;(但请注意后者is considered bad practice)。此外,编译器通常是正确的,智能感知可能会有一些问题。最后检查您发现的第一个错误,通常缺少大括号或分号会导致文档进一步出现错误。您可能还想在另一个编译器中编译您的代码,并希望得到更准确的错误消息。
  • 智能感知并不总是正确的。
  • error: missing ';' before '&lt;'" 可能意味着您忘记包含向量,或者您将#include &lt;vector&gt; 放在#include "pch.h" 之上并且不知道#include "pch.h" 之上的每一行都被编译器默默忽略,因为这是预编译头文件如何在 Visual Studio 上工作。
  • “pch.h”代表什么?我在相应的 .h 文件中的标题下方有 #include
  • " 我猜 C++ 不知道向量是什么" - 不,命名空间不会自动添加(这违背了命名空间的概念)。正如 Barnets 的回答所建议的那样,您必须明确说明名称空间。

标签: c++ visual-studio


【解决方案1】:
  1. 关于There are no errors (the red squigly line),建议你检查一下你的VS设置Tools-&gt;Options-&gt;Text Editor-&gt;C/C++-&gt;Advanced-&gt;Disable IntelliSense是不是False

  2. 所有 C++ 标准库类型和函数都在 std 命名空间或嵌套在 std 内的命名空间中声明。所以,如果你使用像vector这样的函数,你可以添加std::vector。我建议您可以使用std::function 而不是using namespace std; 另外,您可以参考Microsoft Docs 关于namespace

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    相关资源
    最近更新 更多