Porque fgets() ou gets()??
Dica publicada em C/C++ / Avançado
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:
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);
}
#define MAX 10
int main()
{
char teste[MAX];
fgets(teste, MAX, stdin);
printf("%s",teste);
}
Outras dicas deste autor
Nenhuma dica encontrada.Leitura recomendada
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
Comentários
Legal a dica, sempre é bom evitar bugs simples mas que podem ferrar todo o programa por causa de um buffer overflow...
Legal a dica. Show de Bola
Parabéns.
Parabéns.