Victor Moreira Argamim Postado 10 de outubro de 2014 Denunciar Postado 10 de outubro de 2014 Boa noite, pessoal! Estou aprendendo a programar em C e usando o Xcode como compilador. Acontece que quando uso a função gets pra armazenar uma string, o Xcode exibe no console uma mensagem de erro (warning: this program uses gets(), which is unsafe.) e não deixa armazenar a string. Outros compiladores que já usei no Linux, como o Geany, alertam que gets é "unsafe", mas deixam utilizá-la... E aí, algum expert em C sabe como liberar a função gets no xcode? Obrigado!
Matheus Pedrosa_10291 Postado 4 de dezembro de 2014 Denunciar Postado 4 de dezembro de 2014 (editado) Você tá incluindo a biblioteca STRING.H (#include <string.h>) ? Faz assim: 1- Insere a biblioteca certinho. 2- Ao invés de compilar pelo Xcode, abre o terminal e digita o seguinte (vou chamar meu programa de "código", mas coloca o nome do seu aí): gcc codigo.c -o codigo [dá enter - nesse comando, o terminal vai compilar o seu programa. Se tiver algum erro, ele alerta e mostra o erro] ./codigo [enter de noto - aqui ele vai rodar o seu código assim que estiver OK] Caso ele apresente algum WARNING assim que você compilar o código, se você tentar rodar, ele vai dar erro. Mas se aparecer algum ERROR ele até que roda. Editado 4 de dezembro de 2014 por Matheus Pedrosa_10291
Maddo Garan Postado 5 de dezembro de 2014 Denunciar Postado 5 de dezembro de 2014 - Warning e Error são coisas distintas. - gets() não pertence a string.h. Para pegar uma string com espaços em branco, uma alternativa é usar fgets. Ficaria fgets(string, tamanho, stdin) char nome[30]; printf("Digita um nome: "); fgets(nome, 30, stdin); Atente para uma peculiaridade do fgets: quando digita enter no final, a função captura esse código de nova linha.
William Amaral Postado 27 de outubro de 2017 Denunciar Postado 27 de outubro de 2017 Estou tento o mesmo problema quando uso Gets (), para ler um String estou adicionando as bibliotecas <stdlib.h><stdio.h><string.h><strings.h>, não esta rodando . eu gostaria de usar o compilador Xcode pois ja me acostumei com ele . mais primeira vez q estou pegando esse tipo de problema na varialvel. this program uses gets() which is unsafe
Maddo Garan Postado 28 de outubro de 2017 Denunciar Postado 28 de outubro de 2017 10 horas atrás, William Amaral disse: Estou tento o mesmo problema quando uso Gets (), para ler um String estou adicionando as bibliotecas <stdlib.h><stdio.h><string.h><strings.h>, não esta rodando . eu gostaria de usar o compilador Xcode pois ja me acostumei com ele . mais primeira vez q estou pegando esse tipo de problema na varialvel. this program uses gets() which is unsafe Evitar o gets() é considerado boa prática em C, há motivos para isso ( o próprio compilador avisa que não é seguro). Use alternativas, como o fgets.
William Amaral Postado 28 de outubro de 2017 Denunciar Postado 28 de outubro de 2017 8 horas atrás, Maddo Garan disse: Evitar o gets() é considerado boa prática em C, há motivos para isso ( o próprio compilador avisa que não é seguro). Use alternativas, como o fgets. Fgets tambem nao esta rodando.
Posts Recomendados
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora