Ler e gravar em arquivo binario e texto ao mesmo tempo

Peguei esse codigo da internet e gostaria de fazer ele ler e gravar em arquivo binario e texto, ao mesmo tempo. Eu tentei desse jeito mas apenas salva no arquivo binario.

include

include

typedef struct { char nome[100]; int idade; } Pessoa;

FILE *f; FILE *f2;

int main() { Pessoa p;

printf("Digite seu nome: "); fflush(stdin); gets(p.nome); printf("Digite sua idade: "); scanf("%d", &p.idade); f = fopen("pessoas.txt", "a"); f2 = fopen("pessoas2.bin", "ab"); fwrite(&p, sizeof(Pessoa), 1, f); fclose(f); fclose(f2); f = fopen("pessoas.txt", "r"); f2 = fopen("pessoas2.bin", "rb");  if (!f) {     printf("Erro ao tentar ler o arquivo.\n");     exit(1); }  while(fread(&p, sizeof(Pessoa), 1, f)) {     printf("Olá %s, você tem %d anos.\n", p.nome, p.idade); }  fclose(f);   return 0; 

}