CLion不会在Debug中显示输出

时间:2017-12-12 15:26:59

标签: 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 | Debug,如果有任何帮助的话。 task2-a.c是正在构建的C文件的名称。我不知道发生了什么......

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

如果您不想使用内置的clion控制台,则可以通过更改clion使用的默认调试器来解决此问题。

Settings => Toolchain => <your compiler> => Debugger下,将捆绑的GDB更改为编译器的调试器,例如MinGW: Clion Settings