我通过书籍学习C ++和COM。
在IDE MS Visual Studio 2012中,我创建了新的空C ++项目,并向其中添加了一些现有文件。我的CPP文件包含#include<iostream>
行,但在编辑器中我收到了这样的消息:
错误:标识符“cout”未定义
端
错误:标识符“endl”未定义
屏幕:
为什么会这样?
答案 0 :(得分:38)
您需要指定std::
命名空间:
std::cout << .... << std::endl;;
或者,您可以使用using
指令:
using std::cout;
using std::endl;
cout << .... << endl;
我应该补充一点,你应该在头文件中避免使用这些using
指令,因为包含这些指令的代码也会将符号带入全局命名空间。限制使用指令到小范围,例如
#include <iostream>
inline void foo()
{
using std::cout;
using std::endl;
cout << "Hello world" << endl;
}
此处,using
指令仅适用于foo()
。
答案 1 :(得分:6)
cout
位于std命名空间中,您应在代码中使用std::cout
。
并且您不应在头文件中添加using namespace std;
,将代码与std命名空间混合是不好的,尤其是不要将其添加到头文件中。
答案 2 :(得分:6)
您可以在#include <iostream>
之后的开头添加:
using namespace std;
答案 3 :(得分:2)
问题是您缺少std名称空间。 cout
在std名称空间中。
在#include
using namespace std;