最直接的方法:system("pause") (仅用于调试)
这是初学者最常用,但也是最不推荐的方法。

作用:暂停程序,并显示“请按任意键继续. . .”的提示,当用户按下任意键后,程序会继续执行,直到结束,然后窗口会自动关闭。
代码示例:
#include <stdio.h>
#include <stdlib.h> // 需要包含这个头文件
int main() {
printf("程序运行中...\n");
printf("信息已经显示完毕,\n");
// 在程序结束前暂停
system("pause");
return 0; // 程序正常结束,窗口会关闭
}
优点:
- 简单,一行代码搞定。
- 可以看到程序输出的所有内容,不会被窗口关闭而“闪退”。
缺点:

- 不专业:这只是一个调试技巧,不适合发布给最终用户的程序。
- 依赖操作系统:
system()函数会调用操作系统的命令行,pause是 Windows 的命令,在 Linux 或 macOS 上无效。 - 不安全:
system()的字符串参数被恶意篡改,可能带来安全风险。
最佳实践:手动关闭窗口 (推荐)
这是最标准、最专业的方法,让程序正常执行完毕,由用户手动关闭窗口。
实现方式:
- 编译并运行:将你的 C 源文件(
main.c)编译成可执行文件(main.exe)。 - 通过命令行运行:打开一个命令提示符(CMD)或 PowerShell 窗口,使用
cd命令切换到你的.exe文件所在的目录,然后运行它。 - 手动关闭:程序运行结束后,窗口会停留在那里,等待你手动点击右上角的 "X" 按钮来关闭。
代码示例:
#include <stdio.h>
int main() {
printf("你好,世界!\n");
printf("程序已执行完毕,\n");
return 0; // 程序正常结束
}
当你通过命令行运行这个程序时,它会打印出两行文字,然后返回命令行提示符,窗口保持打开状态,直到你手动关闭。

在特定 IDE 中的设置方法
如果你使用的是集成开发环境(IDE),如 Visual Studio 或 Dev-C++,它们有自己的设置来处理窗口关闭问题。
对于 Visual Studio (VS):
默认情况下,当你在 VS 中运行控制台程序时,如果程序正常结束,控制台窗口会立即关闭,导致你看不到输出。
解决方案:
- 在代码的
return 0;之前,加上system("pause");。 - 更好的方法:修改项目属性,让它在程序结束后自动暂停。
- 在 VS 菜单栏中,选择 调试 -> 选项。
- 在弹出的窗口中,导航到 调试 -> 常规。
- 勾选 “控制台” 下的 “当进程退出时自动关闭控制台”。
- 取消这个勾选,这样程序结束后窗口就不会自动关闭了。
对于 Dev-C++:
Dev-C++ 默认会在程序结束后暂停,让你看到输出,所以通常你不需要做任何额外操作。
程序化地强制关闭窗口 (不推荐)
如果你想在代码中强制关闭窗口(程序遇到错误时),可以使用 exit() 函数。
注意:这会立即终止当前进程,不会执行 main 函数结尾的代码,也不会进行任何清理工作(如关闭文件、释放内存等),这通常只用于处理严重错误。
代码示例:
#include <stdio.h>
#include <stdlib.h> // 需要包含这个头文件
int main() {
printf("程序开始运行...\n");
// 模拟一个错误
printf("发生了一个致命错误!\n");
// 强制退出程序,窗口会立即关闭
exit(1);
// 这行代码永远不会被执行
printf("这行不会显示,\n");
return 0;
}
| 方法 | 代码 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|---|
| 手动关闭 | return 0; |
发布程序、专业开发 | 标准、专业、跨平台 | 需要用户手动操作 |
system("pause") |
system("pause"); |
快速调试、初学者 | 简单、直观 | 不专业、依赖系统、有安全风险 |
| IDE 设置 | 修改项目属性 | 在 IDE 中开发 | 便捷、一劳永逸 | 仅限于特定 IDE |
| 强制关闭 | exit(1); |
处理严重错误 | 快速终止程序 | 不安全,可能导致资源泄漏 |
给你的建议:
- 学习和练习阶段:可以使用
system("pause");来方便地查看输出。 - 完成项目或准备发布时:请务必采用手动关闭窗口的方式,并确保你的程序逻辑是正确的。
