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

problema con el cin.getline en c++

Estas en el tema de problema con el cin.getline en c++ en el foro de C/C++ en Foros del Web. hola tengo un problema necesito hacer un programa que me permita ingresar datos de una estructura determinada en el programa pero para leer una cadena ...
  #1 (permalink)  
Antiguo 26/09/2012, 00:06
 
Fecha de Ingreso: abril-2011
Mensajes: 76
Antigüedad: 13 años
Puntos: 1
problema con el cin.getline en c++

hola tengo un problema necesito hacer un programa que me permita ingresar datos de una estructura determinada en el programa pero para leer una cadena uso el cin.getline pero me lo ignora el programa y no me lo pide osea se salta esa instrucción aquí esta el código:

#include<iostream>
#include<conio.h>
using namespace std;
main ()
{
struct agenda{
char nombre[100];
char cel[10];
}vector[10];
char opc;
int i,x,y;
i=0;
char palabra[100];
while(opc != 's')
{

cout<<"puedes: \n a) agregar un contacto \n m) mostrar los contactos \n s)salir \n";
cin>>opc;
system("cls");
switch (opc)
{
case 's': break;

case 'a':
cout<<"escribe los apellidos del contacto \n";
cin.getline(vector[i].nombre,100,'\n');
cout<<"escribe el numero de celular del contacto \n";
cin>>vector[i].cel;
i++;
system("cls");
break;

case 'm': system("cls");
for (x=0;x<i;x++)
{
cout<<"el contacto: " <<vector[x].nombre <<"\n tiene el cel: "<<vector[x].cel<<"\n";
}
cout<<"\n pulsa enter para seguir";
getche();
system("cls");
break;
}

}
}

el compilador que uso el dev c++ ¿ podrían decirme como corrijo eso? de antemano muchas gracias.
  #2 (permalink)  
Antiguo 28/09/2012, 19:50
 
Fecha de Ingreso: abril-2011
Ubicación: Guadalajara, Jalisco, Mexico
Mensajes: 27
Antigüedad: 13 años
Puntos: 4
Respuesta: problema con el cin.getline en c++

tu problema es muy sencillo, eso me pasaba a mi hace unos dos años, lo que pasa es que generalmente el primer cin.getline(); en estructuras lo que lee es primeramente el Enter que das.
Lo que debes hacer es simplemente agregar otra linea exacta asi:
Código C++:
Ver original
  1. cout<<"escribe los apellidos del contacto \n";
  2. cin.getline(vector[i].nombre,100);
  3. cin.getline(vector[i].nombre,100);

Así debería estar solucionado tu problema!

Etiquetas: int, programa
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 12:06.