Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/06/2015, 04:11
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Programa para consultar datos struct

Cita:
Iniciado por Srgy Ver Mensaje
He probado copiar la primera sentencia que posteas justo antes del fgets y se me queda colgado, sin hacer nada. Ya no me saca del programa pero se queda "sin hacer nada". ¿Insinúas que es necesario limpiar el búfer antes de llevar la cadena a esa variable? ¿Por qué no basta con hacer la asignación?
Porque en el buffer se puede quedar basura... por ejemplo un salto de línea que se haya podido quedar ahí o alguna tecla que haya pulsado el usuario mientras tanto.

El buffer de entrada almacena todas las teclas que pulses, aunque no estés llamando en ese momento a las funciones de lectura. El buffer está a nivel del sistema operativo, él almacena ahí lo que vas haciendo y luego el programa va consultando bajo demanda.

Cita:
Iniciado por Srgy Ver Mensaje
A lo que comentas de no usar char[] y usar std::string... soy novato en C++ y no conozco esto. ¿Puedes comentar por encima qué diferencias y que pros obtengo con ese cambio?
string es una clase de C++. Internamente gestiona un char[], lo que sucede es que es capaz de redimensionar ese char* sin que tú tengas que preocuparte de ello, por lo que SIEMPRE te va caber lo que intentes almacenar en dicha clase... y sin preocuparte por la gestión de la memoria dinámica!!!

Aparte de eso, al ser una clase, incorpora una serie de métodos que hacen más sencillo su uso respecto a un char*.

Un saludo