c语言c2065在哪,关于c ++:错误C2065:’cout’:未声明的标识符

我正在编写我的编程任务的"驱动程序"部分,我不断得到这个荒谬的错误:

error C2065: 'cout' : undeclared identifier

我甚至尝试过使用std :: cout,但我得到另一个错误:IntelliSense:命名空间"std"没有成员"cout"当我声明使用命名空间std,包括iostream +我甚至试图使用ostream

我知道这是一个标准的菜鸟问题,但这让我感到难过,我是一个新手(意思是:我之前已经编程了......)

#include

using namespace std;

int main () {

cout <

return 0;

}

我正在使用Visual Studio 2010并运行Windows 7.所有.h文件都有"using namespace std"并包含iostream和ostream。

删除所有头文件但iostream,然后再试一次。

不应该你的<< end be endl?

<

是的抱歉我改变了但没有 - 无论是endl还是仅使用iostream - 尝试过:使用iostream w /命名空间std但没有运气

"注意:所有的.h文件都包含命名空间std - 并包含io和o流......"< - 如果你的意思是所有.h文件都有"using namespace std;"在他们中,你可能想重新考虑......

int main,而不是int main。并且在功能体之后没有分号。

你试过@Timo Geusch给出的建议吗?那么会发生什么?

@Ponting - 是 - 没有改变

您是否尝试将其更改为int main()并返回值?

@JonH什么都没有 - 我试着清理构建但仍然没有

好的..还有一个尝试,当你右键点击iostream并使用打开文件iostream时会发生什么(我不记得确切的选项)?它能打开吗?

你用的是什么编译器?你能在一个新的编译器构建上开始一个新的新项目吗?有些东西告诉我你的文件已损坏或有些东西没有安装得那么顺利。每个人都发布了有效的C ++代码,所以它应该工作:)。

同时将整个代码重新发布为编辑,以便我们可以看到您所做的更改。否则我们不能相信你在bob函数之后已经摆脱了那个分号。

@Ponting - 是的,我可以。

这里的一切看起来都很好并且编译但我不使用vs 2010.不是在beta :-p。 Argh使用2008并检查它!

是的,我认为这是编译器,IDK为什么会这样做,但我要重新安装:)谢谢你们

你真的尝试编译这个或者你刚刚看到Visual Studio中的错误吗?我相信你第一次在VS2010中启动一个C ++项目时,它可能会开始扫描所有的std标题,并且最初可能无法识别像std::cout这样的基本内容。但是,如果你尝试构建它,它应该工作...

此外,这是一个空项目还是CLR项目?我非常确定Intellisense在VS2010中不能用于CLR(即.NET)项目。

Intellisense不适用于C ++ / CLI,但他不应该收到任何错误消息(只是没有完成提示)。

你的问题只提到intellisense。你也得到了实际的编译错误吗?

Jalf,第一段提到了编译器错误C2065。

您要编译的文件的名称是什么,包括扩展名?我发现Visual Studio会将.c扩展名作为c文件编译,而.cpp编译c ++ ...听起来很愚蠢我知道,可能已经建议了。

我严重怀疑Visual Studio有关于cout的错误。

当我遇到完全相同的问题时,我感到很困惑,我开始在网上寻找解释,这就是我在这里的原因。当我使用这行时,我倾向于认为编译器没有正确使用它,std :: cout

你将它作为C运行,而不是C ++。

@Wallter如果有错误,如果您能在答案中描述错误并包含错误报告的链接,那就太棒了。

为什么这个问题获得如此多的选票? OOB此代码有效,并且没有明确的答案。

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

这些都行不通。

#include

using namespace std;

int main () {

cout <

return 0;

}

#include

#include"stdafx.h"

using namespace std;

int main () {

cout <

return 0;

}

这样做。

#include"stdafx.h"

#include

using namespace std;

int main () {

cout <

return 0;

}

这是stdafx.h头文件的一个很好的答案。

这应该是正确的答案,因为它指定了代码的工作原理。非常感谢。

是的,这应该是公认的答案。大多数其他人也可以工作,但这非常明确地说明了这一点。 @Wallter

我刚刚投票支持投票。这是答案,清楚地说明。

除了没有人提到stdafx.h的内容。

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

#include"stdafx.h"

#include

using namespace std;

int main()

{

cout<

return 0;

}

我在Visual Studio C ++ 2010上遇到了同样的问题。它很容易修复。在main()函数上方,只需用下面的替换标准include行,但在includes前面加上井号。

# include"stdafx.h"

# include

using  namespace std;

include"stdafx.h"没问题

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

如果你没有包含namespace std,你必须编写std::cout而不是简单的cout

如果您启动了需要#include"stdafx.h"行的项目,请将其放在第一位。

我已经看过如果你使用了

#include

那你就会遇到问题。

如果你使用

#include

(注意 - 没有.h)

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

我已经看到如果你使用#include 那么你会遇到问题如果你使用#include (注意 - 没有.h)那么你就不会遇到你提到的问题。

但为什么它如此重要使用包括没有".h"?

@JavaRunner:因为文件名为iostream。它未命名为iostream.h。 iostream.h不存在。就那么简单。

下面的代码使用gcc编译并正确运行。尝试复制/粘贴它,看看它是否有效。

#include

using namespace std;

int bob (int a) { cout <

int main () {

int a = 1;

bob(a);

return 0;

}

是的同样的事情 - 错误1错误C2065:'cout':未声明的标识符&amp;&amp; IntelliSense:标识符"cout"未定义

std :: cout有用吗?我对Visual Studio了解不多,您确定您已将项目正确设置为C ++项目吗?如果你打开文件iostream它是否包含一个cout声明?

鉴于VS2010仍处于测试阶段,它可能是一个错误(您使用的是哪个测试版?)。但我发现很难相信这么基本的东西不能正常工作。

这就是为什么它让我大吃一惊:)

关于ubuntu C ++项目;添加此"using namespace std;"在"#include "完成工作后 - 谢谢

如果您包含的唯一文件是iostream并且它仍然显示未定义,那么也许iostream不包含它应该包含的内容。是否有可能在项目中有一个巧合命名为"iostream"的空文件?

当我使用带有C ++代码的.c文件扩展名时,我发现类似的事情发生了。除此之外,我必须同意所有人关于安装错误的信息。如果您尝试使用早期版本的VS编译项目,它是否有效?试试VC ++ Express 2008.它在msdn上免费。

是的,这是VS2010 - 我已经安装了eclipse Galileo并且程序运行得很好!!!

在我的案例中,这样一个愚蠢的解

// Example a

#include

#include"stdafx.h"

以上是按照例子a odered,当我改变它类似于下面的例子b时......

// Example b

#include"stdafx.h"

#include

我的代码编译成一个魅力。尝试一下,保证工作。

我有VS2010,Beta 1和Beta 2(一个在我的工作机器上,一个在家里),我已经使用std充足而没有问题。尝试输入:

std::

看看Intellisense是否给你任何东西。如果它给你通常的东西(abort,abs,acos等),除了cout,那么,这是一个非常令人费解的。在这种情况下,一定要查看你的C ++头文件。

除此之外,我只是添加以确保您正在运行一个常规的空项目(而不是CLR,其中Intellisense被削弱),并且您实际上已经尝试至少一次构建项目。正如我在评论中提到的,一旦你添加了include,VS2010会解析文件;可能是某些东西卡住了解析器并且它没有立即"找到"cout。 (在这种情况下,尝试重启VS可能吗?)

不,在std ::中没有cout,endl,cerr(完成时)

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

#include"stdafx.h"

#include

using namespace std;

int main() {

cout <

return 0;

}

我必须包含stdafx.h,因为它导致错误没有。

在你开始这个程序之前摆脱所有代码并在main中做一个简单的hello world。仅包含iostream和使用命名空间std;。

一点一点地添加它来找到你的问题。

cout <

我做了但没有改变

好吧,其他人都这么说。摆脱所有代码。只需保留using命名空间和标题iostream。然后把它放在:int main(void){std :: cout <

如果它不能仅使用#include int main() { std::cout

它主要不是主要的。案例在C ++中很重要。我建议你google C ++ hello world。

在函数bob之后摆脱那个半冒号。它来自main之前,所以你不需要它。

@Pavel Minaev&amp; JonH我已经做到了,但没有

我不认为VS 2010 Beta 2可用于C ++。标题存在一些严重问题。我无法编译我所拥有的任何东西。

@David:这将是非常奇怪的,因为我使用VS2010 beta 2非常多,特别是对于C ++,没有任何问题。如果您遇到严重问题,请在MS Connect上将其报告为错误! (connect.microsoft.com/VisualStudio/feedback)

@Wallter:你是从VS编译的吗?或者从命令行使用cl.exe?

@Pavel Minaev:使用内置的CTRL-F5构建所有功能

拿代码

#include

using namespace std;

在你的.cpp文件中,创建一个头文件并将其放在.h文件中。然后加

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

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

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

在Visual Studio中使用"stdafx.h"下面的所有头文件管理器。

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

你的程序没有任何问题,cout在namespace std中。您安装的VS 2010 Beta 2有缺陷,我认为这不仅仅是您的安装。

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

我对VS 2010有一种非常非常糟糕的感觉。

鉴于VS2010是使用自身编写的(并使用VC10编译器编译,代码使用新的C ++ 0x功能,如lambdas等),我可以向您保证它已经为C ++做好了准备。如果您遇到"Hello,world"应用程序的问题,那么它听起来像是安装损坏(可能是一个错误),或者是一些安装后的错误。无论哪种方式都不正常,并且它绝对不是beta 1或beta 2中的正常体验,因此请将其报告为Connect上的错误。

@Pavel:谢谢;你可以说,我没有让它发挥作用。在此次危机之后的某个时候,我将尝试获取一些错误报告。

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

using namespace std;

尝试一下,它会起作用。我在Windows XP,Visual Studio 2010 Express中检查过它。

#include"stdafx.h"

#include

using namespace std;

void main( )

{

int i = 0;

cout <

cin >> i;

}

main返回int。总是。

我刚刚安装了vs 2010之后遇到了这个错误,并试图让一个几乎相同的程序工作。

我以前在unix风格的盒子上做过香草C编码,我决定自己玩这个。

我尝试的第一个程序是:

#include"stdafx.h"

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

{

cout <

return 0;

}

这里需要注意的重要事项......如果你曾经做过任何C编码,

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

看起来很奇怪。它应该是:

int main( int argc, char ** argv )

在我的情况下,我刚刚将程序更改为:

#include

using namespace std;

int main()

{

cout <

";

return 0;

}

它工作得很好。

注意:使用CTRL + F5以便控制台窗口固定,以便您可以看到结果。

通常存储在C: Program Files Microsoft Visual Studio 8 VC include文件夹中。首先检查它是否仍在那里。然后选择工具+选项,项目和解决方案,VC ++目录,在"显示目录"组合框中选择"包含文件",并仔细检查$(VCInstallDir)包含在列表的顶部。

只需使用printf!

在printf的stdafx.h头文件中包含stdio.h。

我来到这里是因为我有同样的问题,但是当我做#include"stdafx.h"时它说没找到那个文件。

对我来说诀窍是什么:#include。

我使用的是Microsoft Visual Studio 2008。

这些是你可以使用的东西,包括。 '计数':链接

这是编译器 - 我现在正在使用Eclipse Galileo,程序就像一个奇迹

这不是编译器。

这是编译器,当Visual Studio处于Beta阶段时,这是他们稍后将调试出编译器的错误之一。我现在正在使用Visual Studio 2010编译器的正式版本,一切正常。毫无疑问,编译器是问题所在。 (如下面的Amelia所说 - 在这个问题上我并不孤单)

除了Amelia谈到一个不同的编译器(肯定没有这个问题)。顺便说一下,如果你编辑这个问题特别提到这个问题与2010年测试版有关,那就太好了。如果一些新手写错了代码,然后看到你的问题并假设它刚刚破坏的VS2010,那将是一种耻辱。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值