C/Visual C - fgets

 
Vista:

fgets

Publicado por Dimus (1 intervención) el 11/08/2002 16:56:17
¿ sabeis por que el siguiente codigo imprime en dos lineas diferentes printf("%s tiene %i caracteres\n",array,strlen(array)); ? Un saludo a todos y se buenos.

char array[10];

printf("Inserte la frase: ");
fgets(array,sizeof(array), stdin);
printf("%s tiene %i caracteres\n",array,strlen(array));
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:fgets

Publicado por mique (2 intervenciones) el 11/08/2002 17:15:17
El < \\n > es el retorno de carro,por tanto, en dos lineas diferentes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:fgets

Publicado por dimus (1 intervención) el 11/08/2002 18:23:50
¿ y como lo arreglaria ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:fgets

Publicado por chuidiang (677 intervenciones) el 12/08/2002 09:55:08
Al leer con fgets() también lees el retorno de carro que pulsas después de introducir la cadena. Por ello tu línea se partirá justo detrás de la cadena y el número de caracteres saldrá en una nueva línea.

Tienes dos opciones.

- Usa la función gets() para leer de teclado, que no copia en la cadena el final de cadena.

- Sigue usando la función fgets(), pero encárgate tú de borrar el retorno de carro del final. Algo así como
array[strlen(array)-1] = 0;

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar