【问题标题】:cout doesn't display anything in terminalcout 在终端中不显示任何内容
【发布时间】:2013-09-03 09:32:01
【问题描述】:

我只是想让我的 c++ 代码在我的 mac 的终端中正确输出,但它没有显示任何内容。我使用 xcode 作为文本编辑器,将文件另存为 Code.cpp,然后在终端中键入 g++ Code.cpp。在我的代码有错误时它显示错误之前,但现在它运行正确,它不显示任何输出。有什么想法吗?这是我的代码:

#include <iostream>
using namespace std;

    int main() {
        cout << "Hello World" << endl;
        return 0;

    }

这是我在终端中输入的内容,它只是跳到下一行,没有“Hello World”输出。

jspencer$ g++ Code.cpp
jspencer$

提前感谢您的帮助!

【问题讨论】:

  • 这只是编译程序。然后你需要运行它,默认名称大概是a.out,所以运行它为./a.out。如果要使用其他名称进行编译,请使用-o 选项,例如g++ code.cpp -o myexecutable。另外,我可以在你刚开始的时候抓住你,并警告你using namespace std;的邪恶。
  • @BoBTF 也是我的想法。
  • 非常感谢!那么“使用命名空间std;”的弊端是什么?只使用 std::cout 等会更好吗?
  • 这是一个链接,但我会再次粘贴它:parashift.com/c++-faq/using-namespace-std.html 不幸的是,这是在很多糟糕的初学者教程中犯的一个错误。我也不太喜欢endl (also a link),但人们对此有不同的看法。
  • 不幸的是,我们在这里看到很多新人从老师那里得到了不好的建议。我想很多老师很少写“真实的”c++,只是一年教一次同样的东西,从不改掉自己的坏习惯。

标签: c++ macos terminal cout


【解决方案1】:

g++ 是一个编译器。它将您的源代码转换为可执行程序,但不会运行它。 您必须自己运行该程序。 g++生成的程序的默认名称是a.out(由于历史原因),所以你可以运行它

$ ./a.out

如果您想为程序选择不同的名称,请使用-o 选项:

$ g++ Code.cpp -o myProgram
$ ./myProgram

但我会这样写你的程序:

#include <iostream>
int main() {
    std::cout << "Hello World\n";
    return 0;
}

出于某些原因,请参阅 herehere

【讨论】:

  • 老兄不要粘贴此类问题的答案。在评论部分解决它们:)。
  • @user1502952 我经常看到不值得回答但应该关闭的“坏”问题。但是,这个已经打开了,所以应该得到一个答案。如果您知道重复,请投票关闭它,我很乐意删除我的答案并投票关闭。 (实际上,我猜你不能以低代表投票结束。如果有重复,请在 cmets 中发布。)
  • 我知道我是个菜鸟,这是一个愚蠢的问题。如果这样会更好,我可以删除它。
  • 我很高兴它能够站立。这是一个写得很好的问题,具有适当的详细程度。它还没有作为副本关闭,所以它应该得到答案。没关系,很多人会认为这很简单。可能有争议的是它是题外话,但我们通常接受有关编译器、工具等的问题(我今天早些时候被我认为更可疑的question 大声喊叫,尽管它已经被其他人关闭了)。
  • 我喜欢这个问题,如果你开始在类似 unix 的系统上开发,这并不罕见。
猜你喜欢
  • 2018-12-22
  • 2011-12-31
  • 1970-01-01
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
  • 2019-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多