Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Escribir palabras con espacio

Estas en el tema de Escribir palabras con espacio en el foro de C/C++ en Foros del Web. ¿Cómo hago para ingresas palabras con espacio? Ejemplo: Código: char nombre[15]; cout <<"Ingresar nombre: "; cin >>nombre; Cuando ingrese un nombre en la consola (ejemplo: ...
  #1 (permalink)  
Antiguo 14/05/2013, 14:25
Avatar de Gugolplex  
Fecha de Ingreso: junio-2011
Ubicación: Vía Lactea
Mensajes: 35
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta Escribir palabras con espacio

¿Cómo hago para ingresas palabras con espacio?
Ejemplo:
Código:
char nombre[15];
cout <<"Ingresar nombre: ";
cin >>nombre;
Cuando ingrese un nombre en la consola (ejemplo: Jose Manuel) no se salte a las siguientes opciones.
¿Cómo hago para resolver ese problema?
  #2 (permalink)  
Antiguo 14/05/2013, 14:46
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Escribir palabras con espacio

Con getline
Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. int main () {
  4.   char name[15];
  5.  
  6.   std::cout << "Please, enter your name: ";
  7.   std::cin.getline(name, 15);
  8.  
  9.   std::cout << "Hello " << name << std::endl;
  10.  
  11.   return 0;
  12. }
  #3 (permalink)  
Antiguo 14/05/2013, 15:32
Avatar de Gugolplex  
Fecha de Ingreso: junio-2011
Ubicación: Vía Lactea
Mensajes: 35
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Escribir palabras con espacio

Resolvió el problema pero surgió otro, en la consola se come la primera palabra de la dirección ¿por qué? ¿cómo se resolvería?

La página web que puse tiene siempre el código actualizado

Ejemplo: cuando pongo San Rafael de Orituco, aparece Rafael de Orituco
  #4 (permalink)  
Antiguo 14/05/2013, 15:57
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Escribir palabras con espacio

Seguramente por que estas usando cin para leer un valor antes de llegar a esa parte.

Otra cosa "San Rafael de Orituco" tiene mas de 15 caracteres segurate de poner suficiente espacio.

Si prefieres usar std::string en lugar de arreglos de caracteres.

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. int main () {
  4.   std::string name;
  5.  
  6.   std::cout << "Please, enter your name: ";
  7.   std::getline(std::cin, name);
  8.  
  9.   std::cout << "Hello " << name << std::endl;
  10.  
  11.   return 0;
  12. }
  #5 (permalink)  
Antiguo 14/05/2013, 16:03
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Escribir palabras con espacio

Creo que los string son más oportunos que los arreglos de caracteres. Yo usaría además el namespace std:

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main ()
  6. {
  7.   string name;
  8.  
  9.   cout << "Please, enter your name: ";
  10.   getline(cin, name);
  11.  
  12.   cout << "Hello " << name << sendl;
  13.  
  14.   return 0;
  15. }
  #6 (permalink)  
Antiguo 14/05/2013, 16:37
Avatar de Gugolplex  
Fecha de Ingreso: junio-2011
Ubicación: Vía Lactea
Mensajes: 35
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Escribir palabras con espacio

Ahora si funcionó, gracias a todos :)

¿serán que tienes alguna otra solución a este otro tema?

http://www.forosdelweb.com/f96/como-hago-para-que-solo-acepte-numeros-positivos-1051514/

Etiquetas: espacio, palabras
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:20.