【问题标题】:can't understand "std::cout"无法理解“std::cout”
【发布时间】:2017-06-30 00:49:40
【问题描述】:

背景故事:我正在尝试在 en.cppreference.com 上创建一个帐户。 该过程的一部分涉及: std::cout 显示的内容

困境:我不知道那到底是什么。 我尝试将其放入终端,但没有任何用处。 我试着把它放在代码中并编译它......仍然没有运气。 我用谷歌搜索了它,但没有更接近理解他们到底要我做什么。 最后但同样重要的是,我去了http://en.cppreference.com/w/cpp/io/cout

找到了下面的代码,我也尝试编译,没有运气。

#include <iostream>
struct Foo {
    int n;
    Foo() {
       std::cout << "static constructor\n";
    }
    ~Foo() {
       std::cout << "static destructor\n";
    }
};
Foo f; // static object
int main()
{
    std::cout << "main function\n";
}

尝试编译它导致:

[bad_cat@KittyLitter LearningCode]$ gcc input.c
input.c:1:20: fatal error: iostream: No such file or directory
 #include <iostream>
                    ^
compilation terminated.

我想做的只是克服这个问题,这样我就可以创建一个帐户并学习 C 编程。

【问题讨论】:

  • 您使用 C 编译器 (gcc) 编译用 C++ 编写的代码。您必须使用 C++ 编译器,例如 g++
  • 您不需要 cppreference.com 帐户来学习 C。cppreference.com 上的所有内容都可供您使用,无需登录。拥有帐户仅允许您编辑 wiki。
  • @DYZ,谢谢,很高兴知道。我

标签: c++ std iostream cout


【解决方案1】:

您在 C++ 程序中提供的代码。您需要将其保存为file.cpp 格式,然后您需要使用g++ file.cpp 进行编译,它应该可以工作。

您已将其保存为 file.c 格式并使用 gcc 编译它,这是 C 标准,而不是 C++。

【讨论】:

    【解决方案2】:

    这是一个 C++ 程序,您正在尝试使用 gcc 编译器进行编译。使用g++编译器编译这个程序。

    【讨论】:

    • 我的印象是 gcc 是 c/c++,所以我试图编译为 .c 和 .cpp 以为我已经涵盖了这一点。但我只是尝试了 g++ input.cpp 并且效果很好。抱歉,我无法再将您的答案标记为正确,因为我一问这个问题,我的代表就从 16 降到了 10。
    • @Vasqi,没关系。请注意,&lt;iostream&gt; 是一个 C++ 库。很高兴能提供帮助。
    • gcc 是 C/C++。您需要链接标准 C++ 库。
    【解决方案3】:

    std::cout 在控制台中打印给定的字符串。我建议尝试一些 C++ 基础教程,也许this 会很好。

    应该工作的两个最简单的例子:

    #include <iostream>
    
    int main()
    {
      std::cout << "Hello World!";
    }
    

    第二个(完全一样):

    #include <iostream>
    using namespace std;
    
    int main ()
    {
      cout << "Hello World!";
    }
    

    【讨论】:

      【解决方案4】:

      gcc 编译器能够编译 C++ 代码,请参阅here。我认为问题在于,您使用gcc input.c 进行编译。尝试将文件名更改为input.cpp,因为*.c 文件是C 文件,*.cpp 文件是C++ 文件。您还需要告诉链接器,因为 C++ 没有按标准链接。所以这应该有效:gcc input.cpp -lstdc++。您还可以使用g++ 编译器,默认情况下链接库。
      要回答您问题的另一部分:std::cout 实际上是std::coutstd 只是控制台(在 C 中它是标准输出,我不确定它在 C++ 中是否被称为相同)。 cout 打印出文本。

      【讨论】:

      • Xeneda,在我来这里寻求建议之前,我确实尝试编译为:gcc input.cpp 失败。
      • 尝试使用 gcc input.cpp -lstdc++ 编译。这将链接标准 C++ 库。
      猜你喜欢
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 2010-10-12
      • 2012-06-03
      • 1970-01-01
      相关资源
      最近更新 更多