C可执行文件立即返回

C可执行文件立即返回,c,gcc,C,Gcc,我安装了GCC编译器来编写一些C代码,但是当我导航到目录并使用命令GCC-o helloworld helloworld.C时,它会使桌面上的可执行文件与正常情况一样,但当我运行它时,可执行文件会立即关闭 我认为代码不是问题所在,但这是可能的 #include <stdio.h> int main() { printf("Hello world\n"); return 0; } #包括 int main() { printf(“Hello world\n”); 返回0;

我安装了GCC编译器来编写一些C代码,但是当我导航到目录并使用命令
GCC-o helloworld helloworld.C
时,它会使桌面上的可执行文件与正常情况一样,但当我运行它时,可执行文件会立即关闭

我认为代码不是问题所在,但这是可能的

#include <stdio.h>

int main()
{
  printf("Hello world\n");
  return 0;
}
#包括
int main()
{
printf(“Hello world\n”);
返回0;
}

您的代码中遗漏了这一行
getchar()

#include <stdio.h>

int main()
{
  printf("Hello world\n");
  getchar();
  return 0;
}
#包括
int main()
{
printf(“Hello world\n”);
getchar();
返回0;
}
注意:不过,这并不是另一个答案中@Keith Thompson的修正。相反,这是一种可以强制程序退出的方法,直到它在控制台窗口退出之前等待按键


另一种方式(不使用
getchar()


打开命令提示符
cmd.exe
),导航到程序目录并从那里运行程序。您会发现窗口不再消失,而是保持打开状态。

问题是Windows对运行非GUI程序的支持较差

在Windows下运行程序的常见方法是从资源管理器窗口双击可执行文件。对于像您这样只打印到标准输出的程序,这将为程序的输出打开一个新窗口,程序将运行并快速完成,Windows将立即关闭窗口,可能在您有机会看到它之前

一种常见的解决方法是在程序末尾添加一些内容,例如调用
getchar()
,使程序等待输入

另一种解决方案是从命令提示符运行程序。然后,它的输出将出现在当前窗口中,而不是临时窗口中,您将看到程序的输出,然后是一个新的提示。如果以这种方式运行它,那么添加
getchar()
是不必要的,并且会使程序在终止之前等待输入


Windows操作系统强调GUI程序,而不是使用纯文本输入和输出的程序。C是在另一种环境中开发的(当然,C for Windows的实现支持图形化操作)。

错误是什么???没有错误,我在命令提示符中使用gcc-o命令,当我运行可执行文件时,它会在打开时崩溃it@JordanM.Baron尝试添加简单的行
getchar()
,然后查看命令提示符是否等待按键。我不认为它实际上是崩溃,而是在快速打印文本后退出。你到底是如何运行可执行文件的?如果您在资源管理器窗口中双击它,它将打开一个新的输出窗口,运行并完成,然后操作系统将关闭该窗口,可能在您看到它之前。试着在命令提示符下运行它。不是我,但可能DV是因为您将一个正常工作的程序呈现为“崩溃”,而没有说明它是如何表现的。这是有效的。谢谢。这里不需要使用
。没有它,代码会更便于移植。编辑:现在好多了;)@iRove感谢您的通知,已将其删除:)我建议添加对
getchar()
的调用是一种解决方法,而不是修复方法。真正的问题是Windows不支持运行命令行程序。从命令提示符运行程序是另一种解决方案。如果从命令行运行,它将不必要地等待输入,用户可能不知道原因。我只将getchar()用于测试某些东西的快速而肮脏的小程序,我不想为此打开命令行并导航到目录,等等。