• 0
Sign in to follow this  
roccoC/C++

ARQUIVO - FORMATO ESPECÍFICO COM FSCANF

Question

Se já estamos acostumados a ler de forma formatada com scanf();
não estamos muito longe de entender como ler de modo idêntico com fscanf();
Ora, estudantes de linguagem C devem achar isto perfeitamente possível e necessário em alguns casos.
A função fscanf() funciona como a função scanf(). A diferença é que a saída de fscanf() é um arquivo e não o teclado do computador.
Considere muito correto a seguinte síntaxe para fscanf();:
int fscanf (FILE *fp,char *str,...);
Como já acredito que você conhece a síntaxe de scanf(); imagino que você já detectou que a única diferença das duas síntaxe,
é a especificação do arquivo destino através do ponteiro de arquivo.
Alguns programadores não recomendam o uso de fprintf(); e fscanf(); para ler e escrever dados em arquivos, pois trabalham
com dados ASCII e não binários o que ocasiona uma perda de desempenho no programa dando preferência o uso de fread e fwrite.
Uma boa dica para uma leitura formatada com sucesso é fazer uma análise no arquivo primeiro e procurar estabelecer um determinado padrão se não houver.
Note que no nosso arquivo lendo da esquerda para direita temos na primeira coluna nomes com sobrenomes de pessoas,
na seguinte dia de nascimento, na próxima mês de nascimento, na seguinte o ano de nascimento, na coluna de origem
leitura de strings referente à nacionalidade, e nas próximas colunas, são pêsos
e altura de cada um, onde é óbvio que usei floats para ler isto.
Exemplo mais claro que este que mostro agora acho impossível de encontrar, portanto o iniciante de linguagem C deve ficar
satisfeito com tudo isto que é apresentado agora com clareza.

Na imagem abaixo você ver o programa em execução:

arfscf.PNG

Abaixo está o link para acesso gratuito do código:


http://codigosfontes-ccplus-plus.blogspot.com.br/2016/05/arquivo-formato-especifico-com-fscanf.html

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this