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.
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.
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);
}
Veja como você está.