2017-12-12 13 views
2

で出力を表示しません、これが出力されます:デバッグ時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をすべて除いたコードの開始方法です。また何らかの理由で、私が構築しているコードは、助けがあればtask2-a.c | Debugと言います。 task2-a.cはビルド中のCファイルの名前です。私は何が起こっているのか分からない...

アップデート:デバッグは、Ubuntu 17.04 Clion 2017.2でうまくいきます。 Windows 10のCLion 2017.3では動作しません。

答えて

2

printf文または出力が出現する前にsetbuf(stdout, 0);を置くと、この問題が修正されます。

+1

Windowsでstdoutバッファリングに関する問題が実際に発生していますが、われわれはこれを認識しています(https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000740490-Where-did-the -black-windows-go-?page = 1#community_comment_115000619510)。ここで回避策を投稿していただきありがとうございます! –