如何配置 Codeblocks 在程序完成后不关闭控制台?

Posted

技术标签:

【中文标题】如何配置 Codeblocks 在程序完成后不关闭控制台?【英文标题】:How can I configure Codeblocks to not close the console after the program has finished? 【发布时间】:2020-04-07 15:58:22 【问题描述】:

我应该指定,我想要做等待输入的事情或使用调试器。我希望程序像往常一样运行和终止,但控制台窗口在终止后没有关闭。我知道这是可以做到的,我见过有 hello world 程序的人(没有getchar())按“构建并运行”,窗口仍然打开。

我在 Windows 10 上使用 Code::Blocks 17.12。

【问题讨论】:

Code::Blocks 的行为因版本和平台而异。也许指定版本号和您正在使用的操作系统?在我当前的计算机(Debian,codeblocks 16)上,它开箱即用。 @user12986714 我已编辑我的帖子以包含此信息。 这可能是重复的,看看this对你有没有帮助 @metablaster Visual Studio 也有问题。它是一个具有不透明数据收集(说得非常温和)做法的数千兆字节怪物,它只支持 Windows,至少也有后一个问题,尤其是 10。 @nada 磁盘空间(甚至内存空间)不足不是现在这些计算机组件并不昂贵的借口,而不是 1980 年,您必须使用 1GB 内存或 50GB 硬盘。除了 OP 正在使用 Windows 10。并且可以禁用这些数据收集。 【参考方案1】:

Project -> Properties -> Build targets。您应该在某处看到一个标记为:Pause when execution ends 的复选框。您的应用程序类型必须是 Console application

注意:我使用 Code::Blocks 16.01。您的可能略有不同。

或者,您可以登录到文件:

#include <stdio.h>

FILE* logfile;

int main() 
    logfile = fopen("logging.txt", "w");
    if(logfile == NULL) 
        // Couldn't open the file.
        return 1;
    

    fprintf(logfile, "Logging to logging.txt\n");

    fclose(logfile);

    return 0;

或者您可以“重定向”stdout 到一个文件:

freopen("stdout.txt", "w", stdout);
printf("Logging to stdout.txt\n");

这两个都是 C。对于 C++:Writing a Log file in c/c++

【讨论】:

以上是关于如何配置 Codeblocks 在程序完成后不关闭控制台?的主要内容,如果未能解决你的问题,请参考以下文章

如何将codeblocks的程序移植到stm32上面

使用 MagicalRecord 截断所有应用程序关闭后不保存

python如何在程序运行完后不关闭窗口?

集成板的CodeBlocks编译器配置相关文档

CodeBlocks 如何搭建一个编译Qt程序的环境

如何配置codeblocks+opencv