Ir para conteúdo
Visualizar no app

Uma forma melhor de navegar. Saiba mais.

MM Fórum

Um app em tela cheia na sua Tela de Início com notificações push, avisos e mais.

Para instalar este app no iOS/iPadOS
  1. Toque no ícone de Compartilhamento no Safari
  2. Role o menu e toque em Adicionar à Tela de Início.
  3. Toque em Adicionar no canto superior direito.
Para instalar este app no Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Linguagem C] Função gets no Xcode

Featured Replies

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
  • Visualizações 4k
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Postado

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.

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…

Quem Está Navegando 0

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

Conta

Navegação

Buscar

Buscar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.