C++cout给出了未声明的标识符
C++ cout gives undeclared identifier
所以,我有这个问题。为什么cout抛出
error C2065: 'cout' : undeclared identifier
我正在使用Visual Studio 2012作为IDE,并且正在编写一个学校项目。除了一个示例文件,我什么都做了。所以我试着在屏幕上写这样的东西:
#include "iostream"
#include "stdafx.h"
using namespace std;
int main()
{
cout<<"example";
return 0;
}
所以问题出在定制。。。printf效果不错,但我想用cout。
编辑:我已将"更改为<>但这于事无补。此外,我只使用这个代码作为示例。。。这不是整个项目。
stdafx.h
应是源文件中的第一个include指令。
按照其他人的建议,切换文件并将第二个include转换为<>
。
#include "stdafx.h"
#include <iostream>
请参阅这篇文章了解更多信息。
首先:
#include <iostream>
而不是#include "iostream"
其次,编写using namespace std;
通常被认为是不好的做法,尽管大多数课程都是从它开始的。在你的情况下,最好只使用你真正需要的东西:
using std::cout;
#include "iostream"
应该是
#include <iostream>
本文引用:包含中iostream和iostream引用之间的差异
由@Jerry Coffin提供答案:
当您使用<>时,编译器只在系统指定的目录(例如,在include环境变量中设置的任何目录(中查找头。
使用"时,编译器会首先查找本地目录,如果失败,则会像使用<>一样重新搜索。从技术上讲(即,根据标准(,它不一定是"本地"目录,但这就是它在我所知的每个编译器中的工作方式(。
编辑:
然而,根本原因是stdafx.h
是一个预编译的头。Visual C++不会编译源文件中#include "stdafx.h"
之前的任何内容,除非未选中编译选项/Yu'stdafx.h'
(默认情况下(;它假定源代码中直到并包括该行的所有代码都已编译。然而,最好使用<>
和iostream
,以免混淆代码的读者。
如果将#include <iostream>
与<>一起使用而不是",那么它应该起作用。现在,编译器不知道在哪里可以找到iostream库。
此外,您可能希望将新行的cout<<"example";
更改为cout<<"example"<<endl;
,以便其格式正确。
在尝试构建动态链接库时遇到此问题。请确保在.cpp文件的第一行上指定以下include而不是#include stdafx.h
:
#include "pch.h"
VS2017或更早版本也应如此。
此错误也发生在Visual Studio 2017 IDE中。将stdafx.h移到顶部解决了错误。
有关stdafx.h的更多信息,请参阅"stdafx.h"在Visual Studio中有什么用途?
- #ifdef和未声明的标识符
- 未声明的标识符编译暗黑破坏神 2 程序"muleview"
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- Google protobuf 时间戳未声明标识符,在 Windows 上具有C++
- 使用未声明的标识符"sqrt"?
- 对类 (C++) 中的私有变量使用未声明的标识符
- 我的代码中有错误,未声明的标识符
- 未定义的标识符/未声明
- 错误:在 C++ 'std'使用未声明的标识符
- 在编译器之前检测未声明的标识符
- 使用未声明的标识符'temp'
- 使用未声明的标识符"yylex"和"yyin"?
- 使用"class"关键字,后跟未声明的标识符
- 未声明的标识符错误,但变量定义正确 (?)
- C2065 'cout':未声明的标识符
- C++模板模板参数中未声明的标识符
- 错误:在 C++ 目标 c 混合'self'使用未声明的标识符
- C++循环依赖关系,未声明的标识符
- 我的函数调用 (C++) 中的未声明标识符
- 未找到标识符和未声明的标识符