c++ 为什么visual studio代码告诉我cout不是std命名空间的成员?

s5a0g9ez  于 2023-01-28  发布在  其他
关注(0)|答案(9)|浏览(597)

我正在尝试将Visual Studio代码设置为使用C++编程。我已经安装了扩展C/C ++C/C ++ Intellisense
下面是我的代码:

#include<iostream>
using namespace std;

int main()
{
 cout<< "hello" ;
}

我得到的错误是identifier cout is undefined,当我把它写为std::cout时,我得到的错误是namespace std has no member cout

{
"version": "0.1.0",
"command": "make",
"isShellCommand": true,
"tasks": [
    {
        "taskName": "Makefile",
        // Make this the default build command.
        "isBuildCommand": true,
        // Show the output window only if unrecognized errors occur.
        "showOutput": "always",
        // No args
        "args": ["all"],
        // Use the standard less compilation problem matcher.
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["relative", "${workspaceRoot}"],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    }
]
}

我该怎么解决这个问题?

7rtdyuoh

7rtdyuoh1#

这是一个错误
此漏洞有一个变通方案,请转到VS代码中的File -> Preferences -> Settings并进行更改
"C_Cpp.intelliSenseEngine": "Default""C_Cpp.intelliSenseEngine": "Tag Parser"

oymdgrw7

oymdgrw72#

我正在使用VSCode版本1.22.2与MinGW编译器和下面的配置为我工作:

{
"configurations": [
    {
        "name": "MinGW",
        "intelliSenseMode": "clang-x64",
        "compilerPath": "C:/MinGW/bin/g++.exe",
        "includePath": [
            "${workspaceRoot}",
        ],
        "defines": [
            "_DEBUG"
        ],
        "browse": {
            "path": [
                "C:/MinGW/lib/gcc/mingw32/6.3.0/include",
                "C:/MinGW/lib/gcc/mingw32/6.3.0/include-fixed",
                "C:/MinGW/include/*"
                "${workspaceRoot}",
            ],
            "limitSymbolsToIncludedHeaders": true,
            "databaseFilename": ""
        }
    }
],
"version": 3
}

也请参考这些链接:https://github.com/Microsoft/vscode-cpptools/blob/master/Documentation/LanguageServer/MinGW.md
https://code.visualstudio.com/docs/languages/cpp

1tuwyuhd

1tuwyuhd3#

我有一个同样的问题,发现这是一个vscode错误。请参阅下面的链接。
https://github.com/Microsoft/vscode-cpptools/issues/743

egdjgwm8

egdjgwm84#

我也经历了同样的问题后,VS代码更新到v1.57。
在花了很长时间思考这个问题之后,我才知道这是一个bug,因为最近的更新。它也更新了我已经安装的扩展。C/C++ MicrosoftExtension-(C/C++智能感知、调试和代码浏览) 也是其中之一。它也从1.4.0更新到了1.4.1。
所以我终于整理出,实际的错误是在这个扩展的v1.4.1所以我再次降级到旧版本,这是我的工作很好.
步骤来安装相同扩展的旧版本:
1.单击扩展模块
1.单击“卸载”旁边的向下箭头
1.单击安装其他版本...
1.现在安装适合您的版本。

2g32fytz

2g32fytz5#

我在使用vscode时遇到了一个问题,无法从其他文件中检测到#define常量。通过以下步骤为我解决了这个问题:文件〉首选项〉设置〉扩展〉C/C++
向下滚动至C_Cpp ›默认值:Intelli Sense Mode并将默认值更改为编译器的默认值(在我的情况下为gcc-x64)。

62lalag4

62lalag46#

忘记添加#include iostream,添加后问题解决。

4urapxun

4urapxun7#

Alt + f4并重新启动vscode。错误消失了!

20jt8wwn

20jt8wwn8#

对我有效的方法是删除iostreambits/stdc++.h包含,保存文档并再次添加。这可以在不重新启动VSCode的情况下修复问题。

bfrts1fy

bfrts1fy9#

我不认为你需要改变扩展的设置,因为它也规定这样做会产生“模糊”的智能。
我可以通过修复c_cpp_properties. json文件来解决这个问题:

"intelliSenseMode": "${default}"

当你切换设备时,它可能已经改变了。我在Windows和Mac上都工作过,所以这样做会自动识别你正在工作的系统。

相关问题