Ir para conteúdo
  • Cadastre-se

[Linguagem C] Função gets no Xcode


Posts Recomendados

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!

 
Link para o comentário
Compartilhar em outros sites

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

Top Postadores Neste Tópico

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
Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

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

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

Participe do debate

Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.

Visitante
Responder este tópico…

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Limpar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Quem Está Navegando   0 membros estão online

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



×
×
  • Criar Novo...