JoaoRamalho
13-12-2007, 18:14
boas
instalei o xcode no macbook e agora kuando tava a programar utilizei a funcao fgets() em altenatica á fscanf k so le uma palavra, mas agora tenho um problema, kuando vou a correr o programa aparece o seguinte warning:
warning: this program uses gets(), which is unsafe.
compilei com o comando
gcc -g -ansi -Wall -pedantic prog.c -o prog
ja andei no google e encontrei k se usasse o -Wall o warning ja n aparecia, mas continua a aparecer
ajuda sff
cumps
Mr. Brightside
13-12-2007, 18:21
boas
instalei o xcode no macbook e agora kuando tava a programar utilizei a funcao fgets() em altenatica á fscanf k so le uma palavra, mas agora tenho um problema, kuando vou a correr o programa aparece o seguinte warning:
warning: this program uses gets(), which is unsafe.
compilei com o comando
gcc -g -ansi -Wall -pedantic prog.c -o prog
ja andei no google e encontrei k se usasse o -Wall o warning ja n aparecia, mas continua a aparecer
ajuda sff
cumps
Usa fgets em vez de gets.
Exactamente, usa o fgets. Tens é de ter em conta que vais ter de meter mais 1 parâmetro na função que é o stdin (em vez de um ficheiro, a função lê do standard input).
Tens de meter mais 2, porque tens de definir também o número de caracteres a serem lidos.
exemplo: fgets ( variavel, 99, stdin)
cumpzz
MadOnion
14-12-2007, 02:07
boas
instalei o xcode no macbook e agora kuando tava a programar utilizei a funcao fgets() em altenatica á fscanf k so le uma palavra, mas agora tenho um problema, kuando vou a correr o programa aparece o seguinte warning:
warning: this program uses gets(), which is unsafe.
compilei com o comando
gcc -g -ansi -Wall -pedantic prog.c -o prog
ja andei no google e encontrei k se usasse o -Wall o warning ja n aparecia, mas continua a aparecer
ajuda sff
cumps
Eis outra alternativa:
char str[40];
scanf("%[^\n]", str);
Cumps :)
JoaoRamalho
14-12-2007, 16:08
podes explicar-me esse scanf sff??
Baderous
14-12-2007, 16:17
podes explicar-me esse scanf sff??
%[^\n] informa à função para ler todos os caracteres que encontrar, incluindos espaços, até encontrar um retorno de carro (\n), ou seja, ENTER.
http://www.vivaolinux.com.br/comunidades/verTopico.php?codigo=279&codtopico=975