CLion 不会在调试中显示输出
CLion won't show output in Debug
当我启动程序时,这是输出:
-------------------- HASHMAP MANAGEMENT BOOT MENU -------------------------
Would you like to:
(a) create a new hashmap
(b) load an existing one
(q) exit
>
但是,在调试时,显示了 none 个。检查调试,它确实检查了 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.
在任何 printf 语句或任何输出发生之前放置 setbuf(stdout, 0);
解决了这个问题。
如果您不喜欢使用内置的 clion 控制台,可以通过更改 clion 使用的默认调试器来解决问题。
在 Settings => Toolchain => <your compiler> => Debugger
下,将 Bundled GDB 更改为编译器的调试器,例如MinGW:
当我启动程序时,这是输出:
-------------------- HASHMAP MANAGEMENT BOOT MENU -------------------------
Would you like to:
(a) create a new hashmap
(b) load an existing one
(q) exit
>
但是,在调试时,显示了 none 个。检查调试,它确实检查了 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.
在任何 printf 语句或任何输出发生之前放置 setbuf(stdout, 0);
解决了这个问题。
如果您不喜欢使用内置的 clion 控制台,可以通过更改 clion 使用的默认调试器来解决问题。
在 Settings => Toolchain => <your compiler> => Debugger
下,将 Bundled GDB 更改为编译器的调试器,例如MinGW: