#include <iostream>存在,但是我收到错误:标识符"cout"未定义.为什么?

And*_*man 32 c++ com visual-studio visual-studio-2012

我通过书籍学习C++和COM.在IDE MS Visual Studio 2012中,我创建了新的空C++项目,并向其中添加了一些现有文件.我的CPP文件包含#include<iostream>行,但在编辑器中我得到了这样的消息:

错误:标识符"cout"未定义

结束

错误:标识符"endl"未定义

屏幕:

在此输入图像描述

为什么会这样?

jua*_*nza 42

您需要指定std::命名空间:

std::cout << .... << std::endl;;
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用using指令:

using std::cout;
using std::endl;

cout << .... << endl;
Run Code Online (Sandbox Code Playgroud)

我应该补充一点,你应该using在头文件中避免使用这些指令,因为包含这些指令的代码也会将符号带入全局命名空间.例如,限制将指令用于小范围

#include <iostream>

inline void foo()
{
  using std::cout;
  using std::endl;
  cout << "Hello world" << endl;
}
Run Code Online (Sandbox Code Playgroud)

这里,该using指令仅适用于范围foo().


小智 8

你可以在开头之后添加#include <iostream>:

using namespace std;
Run Code Online (Sandbox Code Playgroud)


bil*_*llz 6

cout在std命名空间中,您将std::cout在您的代码中使用.并且您不应该添加using namespace std;头文件,将代码与std命名空间混合是不好的,尤其是不要将其添加到头文件中.