Curso de C

Fluxos Padrão


Os fluxos padrão em arquivos permitem ao programador ler e escrever em arquivos da maneira padrão com a qual o programador já lia e escrevia na tela.

fprintf

A função fprintf() funciona como a função printf(). A diferença é que a saída de fprintf() é um arquivo e não a tela do computador. Protótipo:

                int fprintf (FILE *fp,char *str,...);

Como já poderíamos esperar, a única diferença do protótipo de fprintf() para o de printf() é a especificação do arquivo destino através do ponteiro de arquivo.

fscanf

A função fscanf() funciona como a função scanf(). A diferença é que fscanf() lê de um arquivo e não da tela do computador. Protótipo:

                int fscanf (FILE *fp,char *str,...);

Como já poderíamos esperar, a única diferença do protótipo de fscanf() para o de scanf() é a especificação do arquivo destino através do ponteiro de arquivo.

Talvez a forma mais simples de escrever o programa da página c960.html seja usando fprintf () e fscanf(). Fica assim:


#include <stdio.h
#include <stdlib.h
void main()
{
FILE *p;
char str[80],c;

/* Le um nome para o arquivo a ser aberto: */
printf("\n\n Entre com um nome para o arquivo:\n");
gets(str);

if (!(p = fopen(str,"w")))  /* Caso ocorra algum erro na abertura do arquivo..*/ 
  {                         /* o programa aborta automaticamente */
  printf("Erro! Impossivel abrir o arquivo!\n");
  exit(1);
  }
/* Se nao houve erro, imprime no arquivo, fecha ...*/
fprintf(p,"Este e um arquivo chamado:\n%s\n", str);
fclose(p);

/* abre novamente para a leitura e fecha. */
p = fopen(str,"r");
while (!feof(p))
 {
  fscanf(p,"%c",&c);
  printf("%c",c);
  } 
fclose(p);
}

 

 


AUTO AVALIAÇÃO

Veja como você está.

  • Escreva um programa que leia uma lista de nomes e idades de um arquivo texto. Prepare um arquivo para ser lido com nomes e idades (use um flag para encerrar). Apresente os dados lidos em forma de tabela na tela. Use as funções de sua preferência (experimente tentar usar mais de uma!).

  •     P

    Dúvidas? De uma olhadinha em nossoFAQ

    Perguntas para a lista do Curso de C