Ir ao conteúdo

Posts recomendados

Postado
char teste[3];
fgets(teste, 3, stdin); //lendo o vetor com a função fgets
scanf("%3s", &teste); //lendo o vetor usando a função scanf

Qual a diferença entre estas duas maneiras de ler uma string em C? Até onde eu sei, o fgets insere um \n na última posição da string se caso sobrar um espaço, mas esta é a única diferença que eu conheço entre as funções acima.

  • Amei 1
Postado

@XisDeeeeee    o fgets pega todos os caractere digitados até encontrar o newline  "\n" e coloca um finalizador de string '\0' no final  , e também limita a quantidade de caracteres que vai pegar ,   aí na hora que você vai imprimir pula uma linha para baixo ,  e o scanf normalmente só pega os caractere digitados até encontrar um espaço em branco e coloca o finalizador de string '\0' , mas não coloca o newline ,  e esse scanf pode ser modificado para pegar todos os caracteres também , 

scanf("%[^\n]%*c",nome[cont]);

algo parecido  assim  ,   .

  • Curtir 1
  • Obrigado 1
Postado

se você usar assim

fgets(teste, 3, stdin); //lendo o vetor com a função fgets

só vai usar 2 caracteres

se você usar assim

fgets(teste, 4, stdin); //lendo o vetor com a função fgets

vai conseguir usar os 3 caracteres

mas o correto num deveria ser assim?

gets (teste);

  • Curtir 1
Postado

Bom dia @XisDeeeeee .

 

E mais; scanf é complexa porque faz leitura e conversão do tipo de dados: as informações são inicialmente lidas em texto sua conversão para tipo primitivo de dados (int, float ...) é realizada internamente na função. Isso fgets não "sabe" fazer.

 

No exemplo você coloca uma leitura de uma string certo?! Nesses termos são basicamente a mesma coisa porque não há conversão de dados para outros tipos primitivos já que string é uma informação do tipo texto.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Mostrar mais  

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

Mostrar mais  
×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!