【问题标题】:C++ on ubuntu hello worldubuntu hello world 上的 C++
【发布时间】:2016-10-01 15:14:32
【问题描述】:

我正在尝试使用 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

我哪里做错了 我试过了

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

但效果不好

有什么帮助吗?

【问题讨论】:

  • 你不需要#include 而不是include
  • 不要使用std::endl,除非你需要它的额外功能。 '\n' 结束一行。但是#include &lt;iomanip&gt; 会给你std::endl 的声明。
  • @NickA - 这也会使std::cout 未定义。这显然是示例代码中的错字,而不是原始代码。
  • 第一个错误应该是error: ‘include’ does not name a type \n include&lt;iostream&gt;,你应该先修复它。
  • @NickA - 你是对的,&lt;iostream&gt; 应该足够了。

标签: c++ ubuntu-15.04


【解决方案1】:

在风格上,我更喜欢明确:std::coutstd::endl

#include <iostream>

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

这也修复了你的一个 tyo:char,而不是 car,并修复了 #include

这按预期工作:

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

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

using namespace std;

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

编辑:没有什么比讨论 beancounter 更有趣了。 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

【讨论】:

  • 有趣的早晨。没有 cmets 的两次驾车投票?太棒了。
  • 好吧,你还没有回答这里提出的问题。
  • 对。因为问题中没有足够的信息。此外,您对using namespace std; 的建议是不必要的,而且比 OP 已有的更糟糕。
  • 然后你想知道为什么人们在投反对票时不离开 cmets。
  • 我没有错,我也没有承认任何这样的事情。尽管我同意您的编码风格建议,但我没有改变对您答案的判断。但这与此处报告的问题无关。
【解决方案2】:

首先,确保您拥有能够在 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多