Why is visual studio code telling me that cout is not a member of std namespace?

Viewed 45077

I am trying to setup visual studio code to program in c++. I have already installed the extensions C/C++ and C/C++ Intellisense

Following is my code:

#include<iostream>
using namespace std;

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

The error I'm getting is identifier cout is undefined and when I write it as std::cout the error I get then is namespace std has no member cout . Following is my task.json file:

{
"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
            }
        }
    }
]
}

How do i fix this?

8 Answers

I am using VSCode version 1.22.2 with MinGW compiler and below config works for me:

{
"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
}

Refer these link too: https://github.com/Microsoft/vscode-cpptools/blob/master/Documentation/LanguageServer/MinGW.md

https://code.visualstudio.com/docs/languages/cpp

I too experienced the same issue after the VS Code Updated to v1.57.
After a long time spending on what's the issue, I have come to know that it is a bug due to this recent update. It has also updated the existing installed extensions which I had. C/C++ Microsoft Extension-(C/C++ IntelliSense, debugging, and code browsing.) is also one among them. It was also updated from 1.4.0 to 1.4.1.
So I finally sorted out that the actual bug was in this extension's v1.4.1 So I downgraded again to old version which was working fine for me.

Steps to Install Old version of same extension:

  1. Click the Extension
  2. Click down arrow near Uninstall
  3. Click Install Another Version...
  4. And now install the version which worked fine for you.

I had a problem with vscode to not detect #define constants from other files. Solved this for me by going to: file > preferences > Settings > Extentions > C/C++

Scroll down to C_Cpp › Default: Intelli Sense Mode and change the value from default to your compiler (gcc-x64 in my case).

I forgot to add #include iostream. After adding the problem was solved.

Alt + f4 and restarted vscode. The error was gone!

What works for me, is just deleting the iostream or bits/stdc++.h include, saving the document and adding it again. This fixes the issue without restarting VSCode.

Related