0

我是 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

有什么想法吗?

4

2 回答 2

3

更改externstd::。第一个问题是extern它只在类型名称之前有效,所以这就是编译器所抱怨的。第二个是cout在 namespace 中定义的std,所以你需要告诉编译器去那里看。好在代码没有说using namespace std;.

于 2013-03-16T23:53:43.783 回答
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,它被带入当前上下文,从而允许您直接使用它。

于 2013-03-16T23:52:50.653 回答