CLion 不会在调试中显示输出

标签 c debugging clion

当我启动程序时,这是输出:

-------------------- HASHMAP MANAGEMENT BOOT MENU -------------------------
Would you like to:
(a) create a new hashmap
(b) load an existing one
(q) exit
>

但是,在调试时,这些都没有显示出来。检查调试,它确实检查了 printf() 命令,但它只是拒绝让它们出现在控制台中。输入寄存器,但输出永远不会到来。

int main(void){
    bool on = true;
    char choice = ' ';
    int status = 0;
    while(on){
        if(status == -1){
            printf("\n[ERROR] : HASHMAP NOT INITIALISED\n");
        }
        printf("\n-------------------- HASHMAP MANAGEMENT BOOT MENU -------------------------\n");
        printf("Would you like to:\n(a) create a new hashmap\n(b) load an existing one\n(q) exit\n> ");

        scanf("%c",&choice);
        ...
        ...
    }
}

代码的开头是这样的,不包括所有的#include。此外,出于某种原因,CLion 说我正在构建的代码是 task2-a.c |如果有任何帮助,请调试。 task2-a.c 是正在构建的 C 文件的名称。我不知道发生了什么......

更新:调试在 Ubuntu 17.04 Clion 2017.2 上运行良好。它不适用于 Windows 10 CLion 2017.3。

最佳答案

在任何 printf 语句或任何输出发生之前放置 setbuf(stdout, 0); 解决了这个问题。

关于CLion 不会在调试中显示输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47776094/

相关文章:

c - 如何在 2 分钟内限制 C 中的程序执行

c - 使用 sendfile(),是否可以判断 in_fd 何时处于 EOF?

c++ - 无法在 clion 中运行任何程序

c++ - CLion,SDL2,CMake:无可用的视频设备

c - C中的字数统计,学习更多CS

c - 为什么我的 calloc 无法将所有内容清零?

php - 网比 : PHP Syntax Checking

c++ - 如何在 C++ 中的空语句上设置断点?

asp.net - 在 Visual Studio 中使用断点调试 Typescript

CLion 过度使用系统内存