c++ - debugger - configurar clion linux
Problemas al depurar el programa de consola simple:: CLion (3)
Al mirar su código, si todo es correcto, debe agregar #include <string>
.
Cuando ejecuto esto, compila y completa la salida.
#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;
}
Estoy tratando de aprender C ++ básico después de ser un desarrollador de Java. Así que decidí darle una oportunidad a CLion. Escribí este código básico solo para familiarizarme con cierta sintaxis de 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;
}
El código es funcional. Revierte cualquier palabra que ingrese. Quería recorrerlo para ver las variables y lo que no, y para probar el depurador de CLion.
Mi problema ocurre cuando llego a
getline(cin, word);
Cuando entro en esta línea, ingreso una palabra y presiono enter. Entonces pásate. Después de hacer esto, nada sucede; todos los botones de paso, entrada, etc. están deshabilitados. No puedo continuar a través del ciclo o ejecutar el resto del código.
He utilizado el depurador de Eclipse muchas veces para el desarrollo de Java sin ningún problema. Cualquier idea puede ser útil.
TL; DR ¿Cómo paso por un programa de línea de comandos C ++ con entrada y salida básica usando CLion?
He replicado el problema, me parece como cuando el IDE se traga la depuración de la nueva línea y no la devuelve al programa. He enviado un error a JetBrains . No veo una manera de evitar esto aparte de salir del IDE y depurarlo directamente con GDB u otro IDE.
ACTUALIZACIÓN : este problema se corrigió en Clion EAP Build 140.1221.2. Incluso realizó el primer cambio enumerado en las notas de la versión:
Los cambios más valiosos son:
- El depurador ya no se cuelga del operador ''cin >>''.
Usa el siguiente código He modificado su código para hacerlo viable para su propósito. :)
#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;
}