Porque fgets() ou gets()??

Publicado por Leonardo em 10/06/2006

[ Hits: 8.086 ]

 


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:

#include <stdio.h>
#define MAX 10

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

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Sobrecarga de Operadores em C++

Como reiniciar o USB sem tirar o cabo

Usando o realloc

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

Livro "Advanced Linux Programming"

  

Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts