Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++/G++;你好,世界应用程序问题,可能是编译 我试图用G+编译器编译Windows上的第一个C++文件…< /P>_C++_Compiler Construction - Fatal编程技术网

C++/G++;你好,世界应用程序问题,可能是编译 我试图用G+编译器编译Windows上的第一个C++文件…< /P>

C++/G++;你好,世界应用程序问题,可能是编译 我试图用G+编译器编译Windows上的第一个C++文件…< /P>,c++,compiler-construction,C++,Compiler Construction,我的cpp文件如下- #include <iostream> using namespace std; int main () { cout << "Hello World!"; return 0; } 然后我要编译我的程序 g++ hello.cpp 它会创建一个文件名a.exe(默认值),但当我单击它时,命令提示符会快速闪烁打开,然后它就消失了 我做错了什么?它应该向世界问好!在提示符下并停留在那里,对吗?这只是Windows从UI执行命令行文件的正常行

我的cpp文件如下-

#include <iostream>
using namespace std;

int main ()
{
  cout << "Hello World!";
  return 0;
}
然后我要编译我的程序

g++ hello.cpp
它会创建一个文件名a.exe(默认值),但当我单击它时,命令提示符会快速闪烁打开,然后它就消失了


我做错了什么?它应该向世界问好!在提示符下并停留在那里,对吗?

这只是Windows从UI执行命令行文件的正常行为——程序一退出(在您的情况下是立即退出),提示符窗口就会关闭

从命令行运行它将使它保持运行状态。为此,
Start>Run>cmd
,然后
cd
到目录,然后键入
a.exe


或者,您可以等待用户的输入以保持窗口打开。这对于测试来说是很好的,但是实际上从命令行执行程序的人都不希望在程序应该正确退出时,必须按一个键来停止程序的运行。

提示与您的程序或语言无关。这与你的操作系统有关

您的程序应该从命令行运行,当它完成时,命令行(显然)将使命令窗口保持打开状态

如果你真的愿意,有一些技巧可以让你保持清醒,但这些只是技巧,不一定是好的练习。其中之一是:

int main()
{
    std::cin.get(); // waits for enter
}

你没有做错什么。程序的末尾没有读线或任何东西,因此当它完成执行时,它将关闭。在程序末尾添加一个读取字符,使其等待输入终止。

您所做的看起来是正确的,但是如果您在Windows中双击程序来启动它,新的命令提示符将在完成后关闭。由于您已经打开了一个命令提示符进行编译,请尝试从那里启动程序:

g++ hello.cpp -o hello.exe
hello.exe

你做的一切都对。命令提示符是否保持打开与程序无关。命令提示符本身就是一个程序,它的默认行为是,当它响应控制台应用程序的执行而启动时,它会在程序完成后立即关闭

您应该自己启动命令提示符,然后从提示符中运行程序,而不是双击其图标启动程序


不要陷入对某种类型的
暂停
函数添加调用或在程序结束时等待输入的坏习惯。您不应该养成在应用程序中对特定shell的不需要的行为进行硬编码的习惯。只要以正确的方式使用shell,就可以获得您想要的行为。

谢谢您的警告,所有这些答案都很好。可能重复:哇……这是一个hello world应用程序。在生产代码中,永远没有理由使用类似的东西。另一方面,“Hello World”应用程序是由初学者编写的,他们应该被教导正确的做事方式,而不是快速而肮脏的方式。或者,如果Windows没有使开发C++程序变得非常困难,我们就不必求助于这样的黑客。从IDE运行程序怎么样?它将打开它,运行它,然后关闭它。本打算提到ide的事情,但决定它不会有任何好处。我唯一一次这样做是在VisualStudio中。
g++ hello.cpp -o hello.exe
hello.exe