作为Java开发人员之后,我正在尝试学习基本的C ++。所以我决定试试CLion。我编写这个基本代码只是为了熟悉一些C ++语法。
#include <iostream>
using namespace std;
int main() {
string word;
cout << "Enter a word to reverse characters: " << endl;
getline(cin, word);
for(int i = word.length(); i != -1; i--) {
cout << word[i];
}
return 0;
}
代码功能齐全。它会反转你输入的任何单词。我想逐步查看变量和不变量,并测试出CLion的调试器。
当我到达
时,我的问题就出现了getline(cin, word);
当我踏上这一行时,我输入一个单词然后按回车键。然后一步一步。我这样做后没有任何反应;所有步骤,按钮等都被禁用。我无法继续循环,或运行剩余的代码。
我已经多次使用Eclipse的调试器进行Java开发而没有任何问题。任何想法都可能有所帮助。
TL; DR如何使用CLion逐步执行带有基本输入和输出的C ++命令行程序?
答案 0 :(得分:11)
我已经复制了这个问题 - 看起来像是在调试换行符被IDE吞没而没有传回给程序时。 I've submitted a bug to JetBrains。除了退出IDE并直接使用GDB或其他IDE进行调试之外,我没有办法解决这个问题。
更新:此问题已在Clion EAP Build 140.1221.2中修复。它甚至在发行说明中列出了第一个更改:
最有价值的变化是:
- 调试器不再挂起'cin&gt;&gt;'运算符。
答案 1 :(得分:1)
查看代码,如果一切正确,则需要添加#include <string>
。
当我运行它时,它会编译并完成输出。
#include <iostream>
#include <string>
int main() {
std::string word;
std::cout << "Enter a word to reverse chars: ";
std::getline(std::cin, word); //Hello
for (int i = word.length() - 1; i != -1; i--) {
//Without - 1 " olleh"
//With - 1 "olleh"
std::cout << word[i];
}
std::cout << std::endl;
system("pause");
return 0;
}
答案 2 :(得分:1)
使用以下代码。我修改了您的代码,使其适用于您的目的。 :)
#include <iostream>
#include <string>
using namespace std;
int main() {
string word;
cout << "Enter a word to reverse characters: " << endl;
getline(cin, word);
for(int i = word.length() - 1; i != -1; i--) {
cout << word[i];
}
printf("\n");
system("pause");
return 0;
}