Error C2065: ‘ cout’: 未声明的标识符

我正在编程作业的“驱动程序”部分工作,我不断得到这个荒谬的错误:

Error C2065: ‘ cout’: 未声明的标识符

我甚至尝试使用 ,但我得到另一个错误说: 名称空间“ std”没有成员“ cout”时,我已声明 使用名称空间 std,包括 iostream + 我甚至尝试使用 Ostream

我知道这是一个标准的菜鸟问题,但这难住了我,我是一个新手(意思是: 我以前编程...)

#include <iostream>
using namespace std;


int main () {
cout << "hey" << endl;
return 0;
}

我正在使用 VisualStudio2010并运行 Windows7。所有的。H 文件有“ using nampace std”,包括 iostream 和 ostream。

338159 次浏览

在开始这个程序之前,除去所有的代码,在 main 中做一个简单的 hello world。只包含 iostream 并使用命名空间 std; 。 一点一点地增加它,找到你的问题。

cout << "hi" << endl;

下面的代码使用 gcc 为我正确地编译和运行。尝试复制/粘贴它,看看它是否工作。

#include <iostream>
using namespace std;


int bob (int a) { cout << "hey" << endl; return 0; };


int main () {
int a = 1;
bob(a);
return 0;
}

如果您包含的唯一文件是 iostream,并且它仍然说未定义,那么或许 iostream 不包含它应该包含的内容。有没有可能您的项目中有一个名为“ iostream”的空文件?

你确定它是用 C + + 编译的吗?检查您的文件名(应该以 .cpp结尾)。检查项目设置。

您的程序没有任何问题,而且 coutnamespace std中。你的 VS 2010 Beta 2的安装有缺陷,我不认为这只是你的安装。

我认为 VS 2010还没有为 C + + 做好准备。标准的“ Hello,World”程序在 Beta 1上不起作用。我只是尝试创建一个测试 Win32控制台应用,生成的 test.cpp文件没有一个 main()函数。

我对 VS 2010有一种非常非常不好的预感。

我有 VS2010,Beta 1和 Beta 2(一个在我的工作机器上,一个在家里) ,我已经用了很多 std没有问题。试着打字:

std::

看看智慧感应能不能给你什么线索。如果它给了你一般的东西(abortabsacos,等等) ,除了 cout,那么,那个是一个相当大的难题。在这种情况下,一定要查看 C + + 头文件。

除此之外,我只想添加以确保您正在运行一个常规的、空白的项目(而不是 CLR,其中智能感知是残缺的) ,并且您实际上至少尝试过一次 建造项目。正如我在注释中提到的,VS2010解析文件时,您已经添加了一个 include; 这可能是什么卡住了解析器,它没有立即“找到”cout。(在这种情况下,也许可以尝试重新启动 VS?)

当我使用。使用 C + + 代码的文件扩展名。除此之外,我不得不同意每个人关于安装错误的观点。如果您尝试使用 VS 的早期版本来编译项目,它是否有效?试试 VC + + Express 2008。在 msdn 上是免费的。


它是编译器——我现在使用的是 Eclipse Galileo,这个程序工作起来就像一个奇迹


通常存储在 C: Program Files MicrosoftVisualStudio8 VC include 文件夹中。首先检查它是否还在那里。然后选择工具 + 选项,项目和解决方案,VC + + 目录,选择“显示目录”组合框中的“包含文件”,并再次检查 $(VCInstallDir) Include 是否在列表的顶部。

当我从头开始一个 ms c + + 2010项目时,我遇到了同样的问题——我删除了 ms 生成的所有头文件,但使用了:

#include "stdafx.h"
#include <iostream>
using namespace std;


int main() {
cout << "hey" << endl;
return 0;
}

我必须包括 stdafx.h,因为它造成了一个错误,没有它在。

我已经看到了,如果你使用

#include <iostream.h>

那你就有麻烦了。

如果你用

#include <iostream>

(注意-没有. h)

那么你就不会得到你所提到的问题。

试试吧,会有用的。我在 WindowsXP,VisualStudio2010Express 中检查过了。

#include "stdafx.h"
#include <iostream>
using namespace std;


void main( )
{
int i = 0;
cout << "Enter a number: ";
cin >> i;
}

如果您开始一个项目需要 #include "stdafx.h"线,把它放在第一位。

拿着密码

#include <iostream>
using namespace std;

从你的.cpp 文件中,创建一个头文件并把它放到.h 文件中,然后添加

#include "whatever your header file is named.h"

在. cpp 代码的顶部。然后再次运行它。

写这个代码,它完美地工作. 。

#include "stdafx.h"
#include <iostream>


using namespace std;


int main()
{
cout<<"Hello World!";
return 0;
}

我在 Visual Studio C + + 2010上遇到过同样的问题。很容易修复。在 main ()函数的上面,只是用下面的代码替换了标准的 include 行,但是在 include 前面使用了磅符号。

# include "stdafx.h"
# include <iostream>
using  namespace std;

在刚刚安装了 vs2010之后,我遇到了这个错误,我只是试图得到一个几乎相同的程序来工作。

我以前在 unix 风格的盒子上做过普通的 C 代码,决定自己来玩玩这个。

我尝试的第一个程序是:

#include "stdafx.h"




int _tmain(int argc, _TCHAR* argv[])
{
cout << "Hello World!";
return 0;
}

这里需要注意的是... 如果你曾经做过任何 C 语言编码,

int _tmain(int argc, _TCHAR* argv[])

看起来很奇怪,应该是:

int main( int argc, char ** argv )

在我的例子中,我只是将程序更改为:

#include <iostream>
using namespace std;


int main()
{
cout << "Hello world from  VS 2010!\n";
return 0;
}

而且效果很好。

注意: 使用 CTRL + F5,这样控制台窗口就可以显示结果。

创建项目时,没有正确设置“使用预编译头”。请在属性-> C/C + +-> 预编译头中更改它。

在 Visual Studio 中,使用“ stdafx.h”下面的所有头文件。

include "stdafx.h"没问题

但是,除非包含 using namespace std,否则不能使用 cout

如果没有包含名称空间 std,则必须编写 std::cout而不是简单的 cout

在 Visual Studio 中,你必须是 #include "stdafx.h"并且是 Cpp 文件的第一个 include。。例如:

这些 没有会起作用的。

#include <iostream>
using namespace std;
int main () {
cout << "hey" << endl;
return 0;
}








#include <iostream>
#include "stdafx.h"
using namespace std;
int main () {
cout << "hey" << endl;
return 0;
}

这个可以。

#include "stdafx.h"
#include <iostream>
using namespace std;
int main () {
cout << "hey" << endl;
return 0;
}

这里有一个关于 stdafx.h 头部功能的很好的答案。

printf

stdio.h包含在 printfstdafx.h头文件中。

我来到这里,因为我有同样的问题,但当我做 #include "stdafx.h"它说,它没有找到该文件。
我的诀窍是: #include <algorithm>
我使用的是 MicrosoftVisualStudio2008。
这些是你可以使用的东西,包括‘ count’: 链接

通过在代码顶部插入以下代码行来包含 std 库:

using namespace std;

对我来说,这是多么愚蠢的解决方案:

// Example a
#include <iostream>
#include "stdafx.h"

上面是按照例子 a 的顺序排列的,当我把它改成类似下面的例子 b 的时候..。

// Example b
#include "stdafx.h"
#include <iostream>

我的代码编译得非常好,试试吧,保证能用。

在 VS2017中,stdafx.h似乎被 pch.h所取代,

使用:

#include "pch.h"
#include <iostream>


using namespace std;


int main() {
cout << "Enter 2 numbers:" << endl;

有这个问题,当头文件声明“使用名称空间标准;”,似乎是混淆 GNU 编译器; 无论如何都是不好的风格!

解决方案是在标题中提供 std: : cout... ,并将“ using nampace std”移动到实现文件中。