brunorf
(usa Arch Linux)
Enviado em 22/11/2011 - 15:04h
O "erro" que você falou é somente um warning. Isso ocorre porque a função fprintf não retorna o que ela leu, mas sim o número de caracteres que ela escreveu, ou seja, retorna um int e não um char*.
Também, pelo que sei, não é possível ler o que foi gravado em um arquivo antes de fechá-lo, ou seja, depois do primeiro for, você precisa dar um fclose e depois abrir o arqbase.txt novamente (como leitura).
O código fica assim então
#include <stdio.h>
int main ()
{
int i, result;//variaveis
char *aux1,*aux2;
FILE *arqbase,*arqcopia;//ponteiros para arquivo.
char linha [1000];//guarda o conteudo da linha
arqbase=fopen ("arqbase.txt","w");
if (arqbase==NULL)
{
printf("erro ao abrir o arquivo ");
return (0);
}
for (i=0;i<10;i++)
{
result=fprintf(arqbase,"clint %d\n",i);
if (result==EOF)
printf("erro na gravação\n");
}
fclose(arqbase);
fopen("arqbase.txt","r");
arqcopia=fopen ("arqcopia.txt","w+");
if (arqcopia==NULL)
{
printf("erro ao abrir o arquivo ");
return (0);
}
while (!feof(arqbase))
{
aux1 =fgets (linha,1000,arqbase);
//aux2 =fprintf(arqcopia,"%s",linha );
fprintf(arqcopia,"%s",linha );
}
}
Abraços!