【问题标题】:"Hello, World!" won't print“你好世界!”不会打印
【发布时间】:2015-03-02 22:12:50
【问题描述】:

之前,我对学习 C++ 很感兴趣,所以我决定观看“InfiniteSkills”培训视频 (http://www.infiniteskills.com/training/learning-c-plus-plus.html) 讲师一如既往地以“Hello World”作为基础。

代码如下:

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello, World!";
    return 0;
}

但是在我使用 CodeBlocks 构建它之后它不会编译 我也尝试过使用 Sublime 文本,但结果似乎是一样的 有什么建议吗?

图片:

【问题讨论】:

  • 有错误信息吗?你实际上做了什么来编译,会发生什么?
  • 添加一个换行符以便缓冲区可以刷新
  • @leppie 这应该不是问题; stdio 缓冲区在程序退出时被隐式刷新。
  • @kybookie 如何运行(即不编译)程序?
  • 我认为真正的问题不是构建和运行,而只是运行。

标签: c++


【解决方案1】:

根据 cmets,您无法看到输出。试试这个:

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello, World!";
    cin.get(); // This waits for you to input something and allows you to see the input.
    return 0;
}

【讨论】:

  • 如果您仍然遇到问题,请查看此链接:cplusplus.com/forum/beginner/2977
  • 您好,感谢您的建议。我收到一个错误'使用未声明的标识符'getch''
  • 错误??可能是因为您可能必须包含标题。
  • 试试 cin.get() 并告诉我。同样会更新答案。
  • 您好,它正在运行但只显示“[Finished in 0.4s]”
【解决方案2】:

您应该在要打印的行尾添加一个换行符。可能您没有看到您的输出,因为它仍在缓冲区中。正如@Quirliom 所指出的:它可能不是 stdio 缓冲区,而是 Sublime 缓冲直到换行......

cout << "Hello, World!\n";

cout << "Hello, World!" << endl;

【讨论】:

  • 您可能想证明这个答案是正确的,因为正如@FUZxxl 所说,stdio 缓冲区在退出时被隐式刷新。
  • 我包含了您的评论,确实可能是因为它是一个不同的缓冲区...
  • @ChrisMaes 请注意endl 不仅会添加换行符,还会立即刷新缓冲区。这可能会减慢您的程序。提示:默认情况下,'\n' 用于换行符,endl 仅在需要时使用。
【解决方案3】:

我不知道这个问题的真正解决方案。但我的猜测是因为编译器。我在 Mac 上使用 CodeBlocks 和 Sublime Text 3 进行了测试,两者都不会为我打印“Hello World”。所以我决定用另一个“Xcode”进行测试,它可以工作!我不知道真正的问题是什么,但如果有人像我一样有任何问题,你可能想尝试使用另一个编译器:)

感谢大家的建议和愉快的编码!!!!

【讨论】:

  • 检查 CodeBlocks 和 SublimeText 的编译器设置,让我们知道,这样实际问题就可以在不回避的情况下解决 :) CodeBlock :cplusplus.com/doc/tutorial/introduction/codeblocks SublimeText: *.com/questions/14621562/… 。一定要恢复。
  • IDE(即 CodeBlocks、Sublime、XCode)不是编译器,它只是一个具有额外功能的文本编辑器。这些 IDE 使用 Clang 或 GCC-G++ 作为编译器。
【解决方案4】:

你应该在你的打印函数中添加一个换行命令和某种暂停。

#include <iostream>
using namespace std;
int main(){
  cout << "Hello World!\n" //calls for a newline
  cin.get(); //pauses until a key is pressed
  return 0;
}

试试这个,看看它是否有效

【讨论】:

    【解决方案5】:

    我也遇到了这个问题,但我能够通过重新安装 VS Code 的 C++ 插件来解决它。我认为 iostream 最初并不存在。

    【讨论】: