【问题标题】:'cout' was not declared in this scope [closed]未在此范围内声明“cout”[关闭]
【发布时间】:2013-02-17 14:39:53
【问题描述】:

我有一个 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' 没有在这个范围内声明

为什么?

【问题讨论】:

  • 我想知道这里被问了多少次。
  • 我不明白为什么它被关闭为“过于本地化”?

标签: c++ iostream cout


【解决方案1】:

将以下代码放在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; 的好建议。详细正确方法请阅读related SO question的答案。

【讨论】:

  • 这样的bad advice.
  • 我知道,我在 2 年前就做出了这个答案,但现在我知道这对初学者来说已经足够了,因为向新手程序员解释命名空间是什么既愚蠢又困难。
  • 我不同意。这对初学者尤其不利,因为他们看不到其中的含义。
  • 我在这里同意@juanchopanza。从坚实的基础开始并解释一切的作用要容易得多,这样他们就不必重新学习他们认为已经处理过的事物的概念
  • tl;dr "使用 std::cout;"
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-29
    • 2021-12-16
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多