[ Foro de C ]

Problema con "gets"

21-Aug-2009 20:32
emuletas yp
1 Respuestas

Este es mi código fuente:

#include <stdio.h>

main()
{
char frase;
printf("Introduce una frase \n");
gets(frase);
printf("La frase es");
puts(frase);

}

Este es el error del compilador gcc (versión 4:4.3.3-1ubuntu1).

cesar@cesar-laptop:~$ gcc cadenas.c
cadenas.c: In function ‘main’:
cadenas.c:7: warning: passing argument 1 of ‘gets’ makes pointer from integer without a cast
cadenas.c:9: warning: passing argument 1 of ‘puts’ makes pointer from integer without a cast
/tmp/ccGNJjcG.o: In function `main':
cadenas.c:(.text+0x25): warning: the `gets' function is dangerous and should not be used.
cesar@cesar-laptop:~$


21-Aug-2009 20:37
Nacho Cabanes (+84)

Existe un fallo, por un despiste habitual cuando uno empieza:

"gets" sirve para leer frases (get string), no caracteres, y tu variable "frase" no está definida realmente de forma que sea capaz de almacenar frases, sino un único carácter (char). Te falta indicar la cantidad de letras que quieres que sea capaz de almacenar tu frase, así:

char frase[80];

(esa orden permitiría guardar hasta 79 letras, junto con la marca de que ya se ha llegado al final de la cadena).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)