Самый простой способ сделать это - использовать freopen, чтобы открыть стандартный вывод для нового файла:
ФАЙЛ *
freopen (const char * ограничение файла, const char * режим ограничения,
ФАЙЛ * ограничить поток);
Из справочной страницы по fopen (которая включает freopen):
Функция freopen () открывает файл
чье имя - указанная строка
по имени файла и связывает с ним поток, на который указывает поток.
Исходный поток (если он существует) закрыт. Аргумент режима
является
используется так же, как в функции fopen ().
Итак, в вашем случае, что-то вроде:
#include <stdio.h>
FILE *myStdOut;
myStdOut = freopen("a.txt", "rw", stdout);
if (myStdOut == NULL)
// Error case, open failed
Подробности могут отличаться в зависимости от ОС, версии ОС и версии компилятора.