我是c +的新手,而且我正处于“hello world”计划中并且我一直收到错误
“cout”没有命名我在Ubuntu上使用geany的类型,如果这有所不同,这是我的代码:
#include <iostream>
int main ()
{
extern cout << "hello world!";
return 0;
}
我不想提出新问题所以我要在这里添加
随着提供的修订版,它将立即编译,但是当我运行程序时,我收到错误
./geany_run_script.sh: 5: ./geany_run_script.sh: ./hello: not found
有关于此的任何想法吗?
答案 0 :(得分:3)
将extern
更改为std::
。第一个问题是extern
仅在类型名称之前有效,因此这就是编译器所抱怨的内容。第二个是cout
在命名空间std
中定义,所以你需要告诉编译器看那里。好处是代码没有说using namespace std;
。
答案 1 :(得分:1)
变化:
extern cout << "hello world!";
太
std::cout << "hello world!"; // You probably want \n on the end.
这是因为cout
是在命名空间std
中定义的对象。因此,您需要让编译器通过在std::
前添加前缀来知道在哪里找到它。有几种替代技术,但在我看来这是最好的。
备选方案一:使用using directive
using std::cout;
cout << "hello world!";
using std::cout;
告诉编译器我们想在本地使用std
中有一个名为cout
的对象,它被带入当前上下文,从而允许您直接使用它。