Ir para conteúdo
Fórum Script Brasil
  • 0

Uso da função fscanf();


Luiz_Junior

Pergunta

Eu uso fscanf, mas quando eu do printf na variável que armazenou a stream, ela aparece o nome sem a primeira letra.

Observe:

#include <stdio.h>

char nome[1];
char leitura[1];

int main(void)
{
printf("Digite o nome: ");
scanf("%[^\n]",nome);
FILE *fp;
fp=fopen("lista","w+");
fprintf(fp,"%s",nome);
fscanf(fp,"%s",leitura);
fclose(fp);
printf("Nome: %s\n",leitura);

return 0;
}

Pelo que li o fscanf pula leitura de "tabs", acho que ele está considerando a leitura do nome na lista como tab.

Alguém pode me explicar o que está acontecendo e como resolver?

Editado por Durub
Adicionar tags code [Durub]
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

char nome[1];
char leitura[1];

Declarar um vetor de char com apenas uma posição é a mesma coisa que declarar um char único. Um vetor de char que armazene uma string deve possuir exatamente ou mais posições que a quantidade de caracteres que será digitado + um (espaço para o terminador nulo).

O fprintf() move o ponteiro para a posição final da string no arquivo após a escrita. O rewind() faz o ponteiro voltar à posição inicial, o que posibilita ler o dado do arquivo.

Se o nome digitado possuir espaços, e no fscanf() você ler apenas como '%s', ele vai retornar apenas a primeira parte do nome. O espaço funciona como um separador.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...