【发布时间】:2014-11-27 00:04:06
【问题描述】:
在成为 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);
当我踏上这一行时,我输入一个单词并按 Enter。然后跨过去。在我这样做之后,什么也没有发生;所有的 step over、in 等按钮都被禁用。我无法继续循环,或运行其余代码。
我已经多次使用 Eclipse 的调试器进行 Java 开发,没有任何问题。任何想法都会有所帮助。
TL;DR 如何使用 CLion 单步执行具有基本输入和输出的 C++ 命令行程序?
【问题讨论】:
-
没有回答你的问题,但你有未定义的行为:
string word; char wordReversedArray[word.length()];- 你有一个长度为 0 的数组,你试图写入... -
@John3136 你是对的。我将代码更改为更清晰一点。同样的问题仍然存在。
-
可以像缓冲一样简单 -
cout << "str";写入控制台/终端。控制台可以缓冲一些东西,直到它得到一个换行符。试试cout << "str" << endl;看看这是否能解释事情...... -
@John3136 这解决了一个问题。它现在按预期打印。但是我在输入时仍然遇到问题。
-
在循环之前添加
cout以显示单词。在循环中添加cout以显示i。看看一切是否如你所愿。 C++ 使用基于 0 的索引,因此word[word.length]无效。
标签: c++ console console-application clion