2017-04-10 27 views
1

當我用從CIN和/或函數getline輸入麻煩試圖調試C++時讀取正確的。當我運行而不是調試時它工作正常。我使用MinGW編譯器/調試器(64位)在Windows 8.1中使用Eclipse neon CDT。運行示例程序隔離使用函數getline用於輸入和提取的第一個字符進行比較的問題:程序輸入(CIN或函數getline)運行,但不進行調試

while (true) { 
    cout << "Enter x to exit: "; 
    getline(cin, input); 
    myChar = input[0]; 
    if (myChar=='x') { 
    break; 
    } 

    cout << "You entered: " <<myChar<<endl; 
} 
cout <<"Exiting..."<<endl; 

當我運行它 - 它完美的作品。然而,當我嘗試調試,它要麼a)不等待輸入,彌補了它自己的,或b)忽略了我的輸入,並彌補了它自己。在不同的項目中進行實驗時,我已經看到了這兩種情況。

我想,也許我需要確保它在讀字符爲UTF-8。但我發現的設置似乎是爲文本編輯器或文本文件(窗口 - >首選項 - >常規 - >工作區)...而不是控制檯。

,我讀了有時對於控制檯輸入問題和使用本地Windows控制檯,而不是IDE集成一個如這裏所描述的嘗試: http://nicolas.riousset.com/eclipse-how-to-debug-a-c-console-application-using-a-native-dos-console-instead-of-the-ide-integrated-one/

不幸的是後來我試圖啓動調試器時,只是得到一個錯誤:

錯誤未能執行MI命令最後發射序列:記錄錯誤消息從調試器後端:處理記錄:當前體系結構不支持記錄功能。過程記錄:當前體系結構不支持記錄功能。

回答

0

可惜當時我只是想啓動調試器時出現錯誤:

錯誤在最後發射程序無法執行MI命令:記錄錯誤消息從調試器後端:過程記錄:當前架構沒有按不支持記錄功能。過程記錄:當前體系結構不支持記錄功能。

這聽起來像是你遇到了bug in Eclipse Neon

的錯誤是固定在Neon.1更新。如果你download the latest version of Eclipse(在撰寫本文時爲霓虹3),它將包含修復程序。

+0

不幸的是吧 - 已經運行neon.3。剛剛上週六下載了它。 CDT版本是9.2.1 – GuitarGirl

+0

@GuitarGirl:有趣。我會鼓勵你[提交錯誤報告](https://bugs.eclipse.org/bugs/enter_bug.cgi?product=CDT&component=cdt-debug)。 – HighCommander4

相關問題