【问题标题】:CodeLite cmd promt closing immediatly after execution of code代码执行后CodeLite cmd提示立即关闭
【发布时间】:2023-01-14 16:35:57
【问题描述】:

我在 codelite 中运行最简单的 c hello world 函数只是为了看看它是否运行良好

void main ( )
{
    
    printf("hello world\n");
    
}

cmd promt 打开片刻,然后立即关闭。

出了什么问题,如何在不关闭的情况下保持 cmd 提示?

我除了 cmd 提示保留

【问题讨论】:

  • 两种选择:a) 首先打开命令提示符并从那里运行代码,或者 b) 如果从 IDE 运行,则在代码末尾添加一个输入,例如 getchar();,然后按 Enter 结束程序。
  • system("pause");

标签: c codelite


【解决方案1】:

来自 C11:

如果 main 函数的返回类型是兼容的类型 int,从对 main 函数的初始调用返回是等价的 使用 main 返回的值调用 exit 函数 函数作为它的参数;到达终止 main 的 } 函数返回值 0。如果返回类型不兼容 使用 int,返回到主机环境的终止状态是 未指定。

拨打printf后;控制到达右大括号},终止main,因此返回到主机环境,退出状态为EXIT_SUCCESS,或0


另请注意,它指出:

程序启动时调用的函数名为 main。这 实现没有为此函数声明原型。应该是 用 int 的返回类型定义并且没有参数:

int main (void) { /* ... */ }

或带有两个参数(此处称为 argc 和 argv,尽管可以使用任何名称,因为它们是 局部于声明它们的函数):

int main (int argc, char *argv[]) { /* ... */ }

或同等学历;或者以其他一些实现定义的方式。

【讨论】:

    【解决方案2】:

    你没有提到你的操作系统,所以我假设是 Windows。 就像提到的其他人一样,除非您添加对 getchr() 或类似内容的调用,否则这是预期的行为。

    但是,CodeLite 确实提供了一个选项,可以在执行完成后暂停您的程序。

    • 右键单击您的项目并打开设置
    • General 选项卡下的 Execution 部分,确保选中选项:Pause when execution ends (见附件截图)

    这是做什么的:CodeLite 不是直接运行您的程序,而是执行一个小包装器来执行您的程序,并且该包装器在完成后暂停。

    卫生部, 以兰

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多