[ Foro de C++ ]
Buen día a todos, tengo un problema con respecto a ingresar espacios como resultado de un string, un ejercicio me dice que mientras no se ingrese nada como valor del string el programa no continúe, pero no entiendo como hacerlo. Creo que es un problema del cmd , por que cuando doy enter sin escribir nada crea una nueva linea.
Uso el CMD de window's para compilar y notepad++ para hacer el codigo.
Hice un ejemplo corto para que pueden ver.
#include <iostream>
#include <string>
using namespace std;
int main () {
struct datos {
string nombre;
int edad;
};
datos persona;
//Pide un nombre, y rechaza la opcion cuando se ingresa "p".
//En vez de "p" debería ingresar un espacio vacío o nada.
do {
cout << "Ingrese nombre: ";
cin >> persona.nombre;
if (persona.nombre.compare("p") == 0) {
cout << "No hay nombre." << endl;
}
}
while (persona.nombre.compare("p") == 0);
return 0;
}
PD: ¿Alguien sabe como poder mostrar el código en la pagina cómo lo hace este usuario?
https://www.aprendeaprogramar.com/mod/forum/discuss.php?d=776
Si se pulsa Intro sin teclear nada más, recibirás una cadena vacía, que puedes comprobar como dos comillas dobles sin nada entre ellas, "", o a partir de su longitud, que será cero.
hola boy
cin necesita almenos un caracter y solo te manda la primera palabra
para este ejercicio podrias usar getline que recoge todo hasta el fin de línea, con el puedes recibir varias palabras y también saber si no se introdujo nada
saludos ;)