Ver Mensaje Individual
  #14 (permalink)  
Antiguo 13/03/2005, 14:35
Avatar de Eternal Idol
Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
De nadas.

La primer diferencia es que en vez de empujar una variable (cin >> accion;) pedimos un caracter solo (cin.get(accion);) y después nos saltamos el \n con ignore, después en vez de empujar una variable (cin >> autor;) que solo consigue una palabra hacemos un getline que consigue toda la linea (permitiendonos escribir Shaw, Bernard por ejemplo).

Para llegar a este código especifico estuve probando bastante, porque si hacia un cin >> accion; y después un cin.getline((char*)autor.c_str(), 256); ni siquiera se detenía a leer la linea (según comprobe con un par de pruebas el problema era el cin >> accion;) y encontré en una página web una recomenación sobre hacer ignores que justamente se saltan una cantidad de caracteres o también puede usar como parámetro (opcional) un caracter (\n por ejemplo). Después seguía fallando en la busqueda y vi que dentro del objeto string no se asignaba bien el _MySize por lo que seguí buscando en google y vi otra forma de leer una linea que es getline() donde se especifica el stream de entrada, la cadena y el terminador de linea. Con estas modificaciones me funcionó finalmente.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Última edición por Eternal Idol; 13/03/2005 a las 14:38