Pular para o conteúdo

Porque fgets() ou gets()??

Dica publicada em C/C++ / Avançado
Leonardo Leojls
Hits: 8.659 Categoria: C/C++ Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Porque fgets() ou gets()??

Porque fgets() ao invés de gets()?

Quando utilizamos o gets() para pegar uma string do teclado pode acontecer do usuário digitar mais caracteres do que o array definido suporta, causando um erro no programa.

É aí que entra a função fgets(), esta função limita o usuário a digitar somente a quantidade de caracteres necessária. Sendo stdin uma stream referenciada ao teclado, então utilizaremos assim:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
#include <stdio.h>
#define MAX 10

int main()
{
   char teste[MAX];
   fgets(teste, MAX, stdin);
   printf("%s",teste);
}

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Nenhuma dica encontrada.

Compilando arquivos EXE no Ubuntu

Conversão de tipos de dados em C/C++

Ebook - Advanced Linux Programming

Passar variáveis char para inteiro

Imprimindo diretamente para porta paralela em C/C++ sem drivers

#1 Comentário enviado por Dark_Avatar em 11/06/2006 - 02:30h
Legal a dica, sempre é bom evitar bugs simples mas que podem ferrar todo o programa por causa de um buffer overflow...
#2 Comentário enviado por f_Candido em 29/10/2007 - 00:36h
Legal a dica. Show de Bola
Parabéns.

Contribuir com comentário

Entre na sua conta para comentar.