ubuntu 你好世界上的 C++

C++ on ubuntu hello world

我正在尝试使用 C++ 在 ubuntu 终端上编写我的第一个代码 .我通过

创建了一个名为 aaa 的新 cpp 文件
"nano aaa.cpp"

然后我在里面写了

#include<iostream>
using std::cout;
using std::endl;

int main(int argc, car** argv)
{
   cout << "hello" << endl;
   return 0; 
}

我保存并退出了,但是当我尝试输入时

g++ aaa.cpp

我收到错误

错误:“endl”未在此范围内声明 cout << "hello" << endl;

我哪里错了 我试过了

$ sudo apt-get remove g++ libstdc++-6.4.7-dev
$ sudo apt-get install build-essential g++-multilib

但效果不佳

有什么帮助吗?

在文体上,我更喜欢直截了当:std::coutstd::endl

#include <iostream>

int main(int argc, char** argv) {
  std::cout << "hello" << std::endl;
  return 0; 
}

这也修复了您的错误:char,而不是 car,并修复了 #include

这按预期工作:

$ g++ -Wall -pedantic -o foo2 foo2.cpp
$ ./foo2
hello
$ 

如果你愿意,你也可以使用

using namespace std;

但如前所述,我更喜欢更明确的形式。

编辑: 没有什么比辩论更有趣的了。 OP 问题可能有 _another 错误,他没有分享。他为 char 修复的代码实际构建:

$ cat foo3.cpp 
#include <iostream>
using std::cout;
using std::endl;

int main(int argc, char** argv) {
  cout << "hello" << endl;
  return 0; 
}
$ g++ -Wall -pedantic -o foo3 foo3.cpp
$ ./foo3
hello
$ 

Ubuntu 16.04,g++ 5.4.0

首先,确保您拥有能够在 Ubuntu 上编译 C++ 代码所需的工具。为此 运行 命令行中的以下代码: 这一行将安装编译 C++ 代码所需的所有基本内容,它将安装 C、C++ 和 make。

 sudo apt-get install build-essential

现在您已经拥有了所需的一切,我建议您明确使用 std::cout / std::endl 。这样,您就不会导入命名空间 std 下您未使用的所有可用内容。使用 std::cout / std::endl 可以清楚地显示您正在使用的实例的来源。 注意:你的主函数参数有错误,即:car,应该是char

#include<iostream>
int main(int argc, char** argv)
{
   std::cout << "hello" << std::endl;
   return 0; 
}

现在您可以这样编译和运行您的代码了: 在此示例中,我调用可执行文件 "hello"

g++ -Wall -o hello aaa.cpp
./hello