“cout”在此范围内未声明。

87

我有一个C++程序:

test.cpp

#include<iostream>

int main()
{
    char t = 'f';
    char *t1;
    char **t2;
    cout<<t;    //this causes an error, cout was not declared in this scope
    return 0;
}

我收到了以下错误信息: “cout在此范围内未声明” 为什么会出现这个错误?

11
我在想这个问题在这里被问了多少次。 - user529758
10
为什么这个问题被标记为“过于局部化”我不太明白? - Chris_Rands
2个回答

138

int main()之前放置以下代码:

using namespace std;

你将能够使用cout

例如:

#include<iostream>
using namespace std;
int main(){
    char t = 'f';
    char *t1;
    char **t2;
    cout<<t;        
    return 0;
}

现在请花一点时间了解cout是什么以及这里正在发生什么:http://www.cplusplus.com/reference/iostream/cout/
此外,虽然快速且有效,但仅仅在代码顶部添加using namespace std;并不是一个好的建议。如需详细正确的方法,请阅读相关的SO问题的答案。

17
这是一篇关于使用C++命名空间std的不良建议的文章。 - juanchopanza
5
我知道,我在2年前给出了那个答案,但现在我知道它对于初学者来说已经足够好了,因为很难解释命名空间是什么,也很难向新手程序员解释清楚。 - zbigniewcebula
8
我不同意。这对初学者来说特别糟糕,因为他们看不到其影响。 - juanchopanza
3
我同意@juanchopanza的观点。最好从一个坚实的基础开始,解释每个部分的作用,这样就不必重新学习他们认为已经掌握的概念了。 - Crutchcorn
1
使用 "std::cout;" - NicoKowe

44
使用 std::cout,因为 coutstd 命名空间中定义。或者,添加一个 using std::cout; 指令。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接