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! Citar
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 Citar
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. Citar
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 Citar
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. Citar
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. Citar
Posts Recomendados
Participe do debate
Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.