Luiz_Junior Posted December 15, 2011 Report Share Posted December 15, 2011 (edited) 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? Edited December 19, 2011 by Durub Adicionar tags code [Durub] Quote Link to comment Share on other sites More sharing options...
0 tucano Posted December 16, 2011 Report Share Posted December 16, 2011 (edited) Luiz_Junior,põe um rewind(fp); depois do fprintf(fp,"%s",nome); que funciona. Não tenho nem ideia do que cause isso... Edited December 16, 2011 by tucano Quote Link to comment Share on other sites More sharing options...
0 mJi Posted December 17, 2011 Report Share Posted December 17, 2011 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. Quote Link to comment Share on other sites More sharing options...
Question
Luiz_Junior
Eu uso fscanf, mas quando eu do printf na variável que armazenou a stream, ela aparece o nome sem a primeira letra.
Observe:
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?
Edited by DurubAdicionar tags code [Durub]
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.