error C2065: 'cout' : undeclared identifier
我正在编写我的编程任务的"驱动程序"部分,我不断得到这个荒谬的错误:
error C2065: 'cout' : undeclared identifier
我甚至尝试过使用std :: cout,但我得到另一个错误:IntelliSense:命名空间"std"没有成员"cout"当我声明使用命名空间std,包括iostream +我甚至试图使用ostream
我知道这是一个标准的菜鸟问题,但这让我感到难过,我是一个新手(意思是:我之前已经编程了......)
1 2 3 4 5 6 7 | #include <iostream> using namespace std; int main () { cout <<"hey" << endl; return 0; } |
我正在使用Visual Studio 2010并运行Windows 7.所有.h文件都有"using namespace std"并包含iostream和ostream。
在Visual Studio中,您必须
这些都行不通。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #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; } |
这样做。
1 2 3 4 5 6 7 | #include"stdafx.h" #include <iostream> using namespace std; int main () { cout <<"hey" << endl; return 0; } |
这是stdafx.h头文件的一个很好的答案。
写这段代码,它完美地工作..
1 2 3 4 5 6 7 8 9 10 | #include"stdafx.h" #include <iostream> using namespace std; int main() { cout<<"Hello World!"; return 0; } |
我在Visual Studio C ++ 2010上遇到了同样的问题。它很容易修复。在main()函数上方,只需用下面的替换标准include行,但在includes前面加上井号。
1 2 3 | # include"stdafx.h" # include <iostream> using namespace std; |
但除非包含
如果你没有包含namespace std,你必须编写
如果您启动了需要
我已经看过如果你使用了
1 | #include <iostream.h> |
那你就会遇到问题。
如果你使用
1 | #include <iostream> |
(注意 - 没有.h)
那么你就不会得到你提到的问题。
下面的代码使用gcc编译并正确运行。尝试复制/粘贴它,看看它是否有效。
1 2 3 4 5 6 7 8 9 10 | #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 ++代码的.c文件扩展名时,我发现类似的事情发生了。除此之外,我必须同意所有人关于安装错误的信息。如果您尝试使用早期版本的VS编译项目,它是否有效?试试VC ++ Express 2008.它在msdn上免费。
在我的案例中,这样一个愚蠢的解
1 2 3 | // Example a #include <iostream> #include"stdafx.h" |
以上是按照例子a odered,当我改变它类似于下面的例子b时......
1 2 3 | // Example b #include"stdafx.h" #include <iostream> |
我的代码编译成一个魅力。尝试一下,保证工作。
我有VS2010,Beta 1和Beta 2(一个在我的工作机器上,一个在家里),我已经使用
1 | std:: |
看看Intellisense是否给你任何东西。如果它给你通常的东西(
除此之外,我只是添加以确保您正在运行一个常规的空项目(而不是CLR,其中Intellisense被削弱),并且您实际上已经尝试至少一次构建项目。正如我在评论中提到的,一旦你添加了
从头开始启动ms c ++ 2010项目时遇到了同样的问题 - 我删除了ms生成的所有头文件,但使用了:
1 2 3 4 5 6 7 8 | #include"stdafx.h" #include <iostream> using namespace std; int main() { cout <<"hey" << endl; return 0; } |
我必须包含
在你开始这个程序之前摆脱所有代码并在main中做一个简单的hello world。仅包含iostream和使用命名空间std;。
一点一点地添加它来找到你的问题。
1 | cout <<"hi" << endl; |
拿代码
1 2 | #include <iostream> using namespace std; |
在你的.cpp文件中,创建一个头文件并将其放在.h文件中。然后加
1 | #include"whatever your header file is named.h" |
在.cpp代码的顶部。然后再次运行它。
在创建项目时,未正确设置"使用预编译头"。在属性 - > C / C ++ - >预编译头中更改它。
在Visual Studio中使用"stdafx.h"下面的所有头文件管理器。
你确定它正在编译为C ++吗?检查您的文件名(它应以
你的程序没有任何问题,
我不认为VS 2010已经为C ++做好了准备。标准的"Hello,World"程序在Beta 1上不起作用。我只是尝试创建一个测试Win32控制台应用程序,并且生成的
我对VS 2010有一种非常非常糟糕的感觉。
通过在代码顶部插入以下行来包含std库:
1 | using namespace std; |
尝试一下,它会起作用。我在Windows XP,Visual Studio 2010 Express中检查过它。
1 2 3 4 5 6 7 8 9 10 | #include"stdafx.h" #include <iostream> using namespace std; void main( ) { int i = 0; cout <<"Enter a number:"; cin >> i; } |
我刚刚安装了vs 2010之后遇到了这个错误,并试图让一个几乎相同的程序工作。
我以前在unix风格的盒子上做过香草C编码,我决定自己玩这个。
我尝试的第一个程序是:
1 2 3 4 5 6 7 8 | #include"stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { cout <<"Hello World!"; return 0; } |
这里需要注意的重要事项......如果你曾经做过任何C编码,
1 | int _tmain(int argc, _TCHAR* argv[]) |
看起来很奇怪。它应该是:
1 | int main( int argc, char ** argv ) |
在我的情况下,我刚刚将程序更改为:
1 2 3 4 5 6 7 8 9 | #include <iostream> using namespace std; int main() { cout <<"Hello world from VS 2010! "; return 0; } |
它工作得很好。
注意:使用CTRL + F5以便控制台窗口固定,以便您可以看到结果。
通常存储在C: Program Files Microsoft Visual Studio 8 VC include文件夹中。首先检查它是否仍在那里。然后选择工具+选项,项目和解决方案,VC ++目录,在"显示目录"组合框中选择"包含文件",并仔细检查$(VCInstallDir)包含在列表的顶部。
只需使用
在
我来到这里是因为我有同样的问题,但是当我做
对我来说诀窍是什么:
我使用的是Microsoft Visual Studio 2008。
这些是你可以使用的东西,包括。 '计数':链接
这是编译器 - 我现在正在使用Eclipse Galileo,程序就像一个奇迹