Probleme debugging simple-Konsole-Programm :: CLion

Ich versuche zu lernen Sie die Grundlagen von C++ nach Java-Entwickler. Also beschloss ich, geben CLion versuchen. Ich schrieb dieses basic-code nur vertraut zu machen, mich mit einigen C++ - syntax.

#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;
}

Den code funktionsfähig ist. Es kehrt auch immer Wort, das Sie Eingabe. Ich wollte Schritt für Schritt durch, um zu sehen, Variablen und was nicht, und zu testen, CLion-debugger.

Mein problem tritt auf, wenn ich

getline(cin, word);

Wenn ich auf diese Zeile, ich geben Sie ein Wort ein, und drücken Sie die EINGABETASTE. Dann Schritt über. Nachdem ich dies Tue, passiert nichts; alle Schritt über, in, etc. Schaltflächen sind deaktiviert. Ich bin nicht in der Lage, weiterhin über die Schleife, oder führen Sie den Rest des Codes.

Habe ich benutzt Eclipse-debugger aus, viele Male für die Entwicklung mit Java ohne jegliche Probleme. Alle Ideen könnten hilfreich sein.

TL;DR Wie kann ich Schritt für Schritt durch einen C++ - Kommandozeilen-Programm mit basic input und output mit CLion?

  • nicht beantworten Ihre Frage, aber hast du Undefiniertes Verhalten: string word; char wordReversedArray[word.length()]; - Sie haben ein array mit 0-Länge, die Sie versuchen zu schreiben, in...
  • Du hast Recht. Ich änderte den code ein wenig klarer. Das gleiche problem weiterhin besteht.
  • Könnte so einfach sein wie Pufferung - cout << "str"; schreiben in die Konsole/terminal. Kann die Konsole Puffer Dinge, bis Sie bekommt einen Zeilenumbruch. Versuchen cout << "str" << endl; zu sehen, ob das etwas erklärt...
  • Feste ein problem. Sie druckt nun, als erwartet. Allerdings bin ich immer noch das Problem bei der Eingabe.
  • Hinzufügen eines cout vor der Schleife zeigt nun das Wort. Hinzufügen eines cout in Ihrer Schleife anzeigen i. Sehen Sie, wenn eveything ist, wie Sie es erwarten. C++ verwendet 0-basierte Indizes, so word[word.length] ist nicht gültig.
  • Ja, das ist ein leicht umgehen. Ich hatte gehofft, dass ein Update für den debugger, da werde ich sicherlich schreiben, erweiterte code-erfordern eine Art debugger.
  • Nicht klar, was für ein problem hast du eigentlich mit dem debugger?
  • Die debugger-Optionen sind deaktiviert, nachdem Sie ein Wort. Ich bin nicht in der Lage, Schritt durch die Schleife, oder sonst was folgende getline(cin, Wort);
  • Haben Sie die Anwendung kompiliert mit debug-Unterstützung aktiviert? (side note, ändern Sie die Schleife starten, mit i = static_cast<int>(word.length()) - 1). Gehen Sie zu " Ausführen | Bearbeiten Sie Konfigurationen Dialogfeld, und ändern Sie die Konfiguration auf Debug

InformationsquelleAutor Ryan DuShane | 2014-10-02
Schreibe einen Kommentar