我正在编写我的编程任务的'驱动程序'部分,我不断得到这个荒谬的错误:
错误C2065:'cout':未声明的标识符
我甚至尝试使用 std :: cout ,但我收到另一个错误消息:智能感知:命名空间“std”没有成员“cout”当我有声明使用命名空间std,包含iostream +我甚至尝试使用 ostream
我知道这是一个标准的菜鸟问题,但这让我感到难过,我是一个新手(意思是:我之前已经编程了......)
#include <iostream>
using namespace std;
int main () {
cout << "hey" << endl;
return 0;
}
我正在使用Visual Studio 2010并运行Windows 7.所有.h文件都有“using namespace std”并包含iostream和ostream。
答案 0 :(得分:60)
在Visual Studio中,您必须#include "stdafx.h"
并第一个包含cpp文件。例如:
这些不工作。
#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;
}
答案 1 :(得分:47)
编写此代码,它完美运行..
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World!";
return 0;
}
答案 2 :(得分:10)
我在Visual Studio C ++ 2010上遇到了同样的问题。它很容易修复。在main()函数上面,只需用下面这个替换标准的include行,但是在include的前面加上英镑符号。
# include "stdafx.h"
# include <iostream>
using namespace std;
答案 3 :(得分:8)
include "stdafx.h"
没问题
但除非您已加入cout
using namespace std
如果你没有包含namespace std,你必须写std::cout
而不是简单的cout
答案 4 :(得分:4)
如果您启动了需要#include "stdafx.h"
行的项目,请将其放在第一位。
答案 5 :(得分:4)
我看过如果你使用
#include <iostream.h>
然后你就会遇到问题。
如果您使用
#include <iostream>
(注意 - 没有.h)
那么你就不会遇到你提到的问题。
答案 6 :(得分:3)
下面的代码使用gcc编译并正常运行。尝试复制/粘贴它,看看它是否有效。
#include <iostream>
using namespace std;
int bob (int a) { cout << "hey" << endl; return 0; };
int main () {
int a = 1;
bob(a);
return 0;
}
答案 7 :(得分:3)
在我的案例中这样一个愚蠢的解决方案:
// Example a
#include <iostream>
#include "stdafx.h"
以上是按照例子a编写的,当我把它改成类似于下面的例子b时......
// Example b
#include "stdafx.h"
#include <iostream>
我的代码编译就像一个魅力。尝试一下,保证工作。
答案 8 :(得分:3)
我在使用带有C ++代码的.c文件扩展名时发生了类似的事情。除此之外,我必须同意所有人关于安装错误的信息。如果您尝试使用早期版本的VS编译项目,它是否有效?试试VC ++ Express 2008.它在msdn上免费。
答案 9 :(得分:3)
如果您包含的唯一文件是iostream并且仍然显示未定义,那么也许iostream不包含它应该包含的内容。是否有可能在项目中有一个巧合命名为“iostream”的空文件?
答案 10 :(得分:2)
从头开始启动ms c ++ 2010项目时遇到了同样的问题 - 我删除了ms生成的所有头文件,但使用了:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main() {
cout << "hey" << endl;
return 0;
}
我必须包含stdafx.h
因为它导致错误而没有。
答案 11 :(得分:2)
拿代码
#include <iostream>
using namespace std;
从.cpp文件中创建一个头文件并将其放在.h文件中。然后添加
#include "whatever your header file is named.h"
位于.cpp代码的顶部。然后再次运行它。
答案 12 :(得分:2)
我有VS2010,Beta 1和Beta 2(一个在我的工作机器上,一个在家里),我已经充分使用了std
。尝试输入:
std::
看看Intellisense是否给你任何东西。如果它为您提供了通常的内容(abort
,abs
,acos
等),除了cout
之外,那么 非常令人费解。在这种情况下,一定要查看你的C ++标题。
除此之外,我只想添加以确保您正在运行一个常规的空项目(而不是CLR,其中Intellisense已被削弱),并且您实际上已经尝试构建该项目至少一次。正如我在评论中提到的,VS2010在您添加include
后解析文件;可能是某些东西卡住了解析器并且它没有立即“找到”cout
。 (在这种情况下,尝试重启VS可能吗?)
答案 13 :(得分:2)
在你开始这个程序之前去除所有代码并在main中做一个简单的hello world。仅包含iostream和使用命名空间std;。 一点一点地添加它来找到你的问题。
cout << "hi" << endl;
答案 14 :(得分:1)
尝试一下,它会起作用。我在Windows XP,Visual Studio 2010 Express中检查过它。
#include "stdafx.h"
#include <iostream>
using namespace std;
void main( )
{
int i = 0;
cout << "Enter a number: ";
cin >> i;
}
答案 15 :(得分:1)
创建项目时,未正确设置“使用预编译头”。在属性中更改它 - > C / C ++ - &gt;预编译头文件。
答案 16 :(得分:1)
在Visual Studio中使用“stdafx.h”下面的所有头文件管理器。
答案 17 :(得分:1)
你确定它正在编译为C ++吗?检查您的文件名(它应以.cpp
结尾)。检查项目设置。
您的计划没有任何问题,cout
位于namespace std
。您安装的VS 2010 Beta 2有缺陷,我认为这不仅仅是您的安装。
我认为VS 2010还没有为C ++做好准备。标准的“Hello,World”程序在Beta 1上无效。我只是尝试创建一个测试Win32控制台应用程序,生成的test.cpp
文件没有main()
函数。
我对VS 2010有一种非常非常糟糕的感觉。
答案 18 :(得分:1)
通过在代码顶部插入以下行来包含std库:
using namespace std;
答案 19 :(得分:0)
有这个问题,当头文件声明为“使用命名空间标准;”时,似乎对 GNU 编译器造成混淆; 反正风格不好!
解决方案是在标头中提供 std::cout ... 并将“使用命名空间 std”移动到实现文件中。
答案 20 :(得分:0)
在VS2017中,stdafx.h
似乎已由pch.h
取代,请参见this article,
因此使用:
#include "pch.h"
#include <iostream>
using namespace std;
int main() {
cout << "Enter 2 numbers:" << endl;
答案 21 :(得分:0)
我来到这里是因为我遇到了同样的问题,但当我#include "stdafx.h"
时,它说它找不到那个文件。
对我来说诀窍是:#include <algorithm>
。
我使用的是Microsoft Visual Studio 2008
这些是你可以使用的东西,包括。 &#39;计算&#39;:Link
答案 22 :(得分:0)
只需使用printf
!
在stdio.h
的{{1}}标题文件中加入stdafx.h
。
答案 23 :(得分:0)
我刚刚安装了vs 2010之后遇到了这个错误,只是试图让一个几乎相同的程序工作。
我之前在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以使控制台窗口四处移动,以便您可以看到结果。
答案 24 :(得分:0)
通常存储在C:\ Program Files \ Microsoft Visual Studio 8 \ VC \ include文件夹中。首先检查它是否仍在那里。然后选择工具+选项,项目和解决方案,VC ++目录,在“显示目录”组合框中选择“包含文件”,并仔细检查$(VCInstallDir)包含在列表的顶部。
答案 25 :(得分:-5)
这是编译器 - 我现在正在使用Eclipse Galileo,程序就像一个奇迹