View Full Version : C - gets() em mac osx


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.

Idiroft
13-12-2007, 21:07
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).

Tyran
13-12-2007, 21:38
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