Jump to content

Recommended Posts

Posted

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 month later...
  • Replies 5
  • Created
  • Last Reply

Top Posters In This Topic

Posted (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 by Matheus Pedrosa_10291
Posted

- 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 years later...
Posted

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

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

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

  • Recently Browsing   0 members

    • No registered users viewing this page.



×
×
  • Create New...