[ Foro de C++ ]

Rechazar espacios en c++

29-Aug-2025 15:25
Invitado (Boy_mustang)
2 Respuestas

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


30-Aug-2025 00:13
Nacho Cabanes (+84)

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.


04-Sep-2025 23:00
Invitado (octavio)

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 ;)






Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...