Victor Moreira Argamim Posted October 10, 2014 Report Posted October 10, 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! Quote
Matheus Pedrosa_10291 Posted December 4, 2014 Report Posted December 4, 2014 (edited) 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. Edited December 4, 2014 by Matheus Pedrosa_10291 Quote
Maddo Garan Posted December 5, 2014 Report Posted December 5, 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. Quote
William Amaral Posted October 27, 2017 Report Posted October 27, 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 Quote
Maddo Garan Posted October 28, 2017 Report Posted October 28, 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. Quote
William Amaral Posted October 28, 2017 Report Posted October 28, 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. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.