
13/03/2005, 14:35
|
 | | | Fecha de Ingreso: mayo-2004 Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 9 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 |