Victor Moreira Argamim Postado 10 de outubro de 2014 Denunciar Compartilhar 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Matheus Pedrosa_10291 Postado 4 de dezembro de 2014 Denunciar Compartilhar 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Maddo Garan Postado 5 de dezembro de 2014 Denunciar Compartilhar 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
William Amaral Postado 27 de outubro de 2017 Denunciar Compartilhar 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Maddo Garan Postado 28 de outubro de 2017 Denunciar Compartilhar 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
William Amaral Postado 28 de outubro de 2017 Denunciar Compartilhar 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Participe do debate
Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.