Devi dichiarare una stringa leggere riga per riga il file e man mano che cripti scrivi su un nuovo file poi se il file iniziale non ti serve + lo elimini alla fine del processo.
Prova un po sto codice.....

codice:
int main(argc, *argv[])

char buffer[256];
{
FILE *fp1,*fp2;

fp1=fopen(pathdelfilesorgente,"r");
fp2=fopen(pathdelfiledestinazione,"a+");

if((fp1==NULL) || (fp2==NULL))
{
printf("Errore apertura file\n");
exit(1);
}

while(!feof(fp1))
{
fread(buffer,sizeof(buffer),1,fp1);
...qui cripti la stringa....
fwrite(buffer,sizeof(buffer),1,fp2);
}

fclose(fp1);
fclose(fp2);
}
Se hai prblemi chiedi pure......