Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/01/2010, 11:26
mrc2407
 
Fecha de Ingreso: octubre-2008
Mensajes: 64
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Función gets no añade "\0"?

Al final lo he solucionado (perece) haciendo un poco de guarrerías... Me explico:

fgets añade al final de cada cadena los carácteres "\n" (retorno de carro) y "\0" (esto en mi caso; si el último carácter fuera un espacio y luego un reotrno de carro también los añadiría), o sea que el problema no está en gets, sino en fgets.

Cómo solucionarlo? ues añadiendo, claro está, el carácter "\n" a la cadena que leo por teclado:

Código C:
Ver original
  1. gets(Jugador);
  2. strcat(Jugador, "\n");

El único problema que tengo ahora es que todo sale un poco raro, porque si hago un puts(Jugador), el siguiente printf sale dos línias más abajo, pero se puede solucionar quitando (otra vez) el "\n" que he añadido con Jugador[strlen(Jugador)-1]='\0';

Alguna solución mejor?