【发布时间】:2017-04-10 00:08:02
【问题描述】:
我在尝试使用来自 cin 和/或 getline 的输入来调试 C++ 时遇到问题。当我运行而不是调试时,它可以完美运行。我在带有 MinGW 编译器/调试器(64 位)的 Windows 8.1 中使用 Eclipse neon CDT。运行示例程序以隔离使用 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。但我发现的设置似乎是针对文本编辑器或文本文件(Window->Preferences->General->Workspace)...而不是控制台。
我了解到控制台输入有时会出现问题,并尝试使用本机 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 命令:记录来自调试器后端的错误消息:进程记录:当前架构不支持记录功能。流程记录:当前架构不支持记录功能。
【问题讨论】:
标签: debugging console mingw eclipse-cdt