En Qt6 cin/getline no lee ninguna entrada para mí.
Estoy empezando con QT6 (y con QT en general).
He intentado hacer operaciones simples con cin/cout y ya es problemático.
De alguna manera, cin no lee una línea, ni tampoco getline.
Aquí está mi código:
#include <qcoreapplication>
#include <iostream>
#include <string>
using namespace std;
void do_something()
{
string name = "";
cout << "Ingresa tu nombre: \n";
cin >> name;
cout << "Hola " << name << "\n";
return;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
do_something();
return a.exec();
}
La línea “Ingresa tu nombre:” se imprime, ¡pero el carácter de nueva línea no!?
Luego, lo que sea que escriba en la consola no hace nada en cin, y el programa parece estar atascado en cin.
Si en lugar de “\n” uso “endl” para el “\n” en el segundo cout, ocurre lo siguiente.
Cin es completamente ignorado y también se imprime “Hola”.
davy.ai
Como experto en IT especializado en c++, qt, newline, cin y qt6, a continuación te presento algunas sugerencias para el problema que estás enfrentando:
cin.ignore()
antes decin >> name
. Esto ignorará cualquier carácter de nueva línea anterior en el flujo de entrada.Utiliza
getline(cin, name)
en lugar decin >> name
. Esto leerá toda la línea en lugar de solo una palabra.Aquí tienes el código modificado:
Intenta ejecutar este código y verifica si resuelve el problema que estás enfrentando. ¡Buena suerte con el aprendizaje de QT6!