CLion在调试中不会显示输出

Mas*_*man 4 c debugging clion

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

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

但是,在调试时,这些都不会显示。检查调试,它确实检查了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);
        ...
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

这是代码开始的样子,不包括所有#includes。另外,由于某种原因,CLion说我正在构建的代码task2-a.c | Debug是否有帮助。task2-ac是正在构建的C文件的名称。我不知道这是怎么回事...

更新:调试在Ubuntu 17.04 Clion 2017.2上运行良好。它只是在Windows 10 CLion 2017.3上不起作用。

Mas*_*man 6

放在setbuf(stdout, 0);任何printf语句或任何输出之前可解决此问题。

  • @EldarAbusalimov CLion 2019.3 中似乎仍然存在该问题;附带说明一下,“setbuf”已被弃用,因此任何人都应该使用“setvbuf”。 (3认同)
  • 像这样使用 setvbuf:`setvbuf(stdout, NULL, _IONBF, 0);` (3认同)
  • Windows 上的标准输出缓冲确实存在问题,我们知道这一点(https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000740490-Where-did-the-black- windows-go-?page=1#community_comment_115000619510)。感谢您在这里发布解决方法! (2认同)