Ver Mensaje Individual
  #15 (permalink)  
Antiguo 27/02/2010, 18:51
Avatar de genuine_carlosV2
genuine_carlosV2
 
Fecha de Ingreso: noviembre-2008
Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 16 años
Puntos: 6
Respuesta: un struct imprime mas de lo permitido

Veamos,

'gets' no es la solución a tu problema, sólo es una función para coger correctamente los datos ya que 'scanf( "%s" )' no funciona para todos los casos.

Para solucionar este problema, tienes que usar las llamadas funciones seguras. Me parece que habían varias funciones para recoger según que datos de forma segura, pero, en cualquier caso, el 'scanf' también se puede hacer seguro.
En vez de:
Código C:
Ver original
  1. char telf[ 10 ]; //Recuerda a añadir el carácter de finalización!
  2. scanf( "%s", telf );

Haz esto:
Código C:
Ver original
  1. char telf[ 10 ]; //Recuerda a añadir el carácter de finalización!
  2. scanf( "%9s", telf );

Añadiendo ese 9, le estas diciendo a 'scanf', que quieres ingresar un string de, como mucho, 9 caracteres (luego, 'scanf', añadirá en la siguiente posición el carácter de finalización para completar los 10 chars que has reservado.

Saludos
__________________
Carlos

Recoger datos es solo el primer paso hacia la sabiduría. Pero compartir información es el primer paso hacia la comunidad. - IBM