Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Postado

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!

 
  • 1 mês depois...
  • Respostas 5
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Postado (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 por Matheus Pedrosa_10291
Postado

- 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.

  • 2 anos depois...
Postado

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

Postado
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.

Postado
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.

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 conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.



×
×
  • Criar Novo...