Ciao,
Cosa intendi esattamente per "report di una simulazione"? Immagino in ogni caso che stiamo parlando di applicazioni console.
Se vuoi "catturare" l'output a video del programma puoi sostituire (o sdoppiare) tutte le printf in fprintf e far stampare direttamente su file (se non sdoppi non hai più output a video, ma per programmi che non prevedono interazione può anche andare).
Altrimenti è meglio chiarire cosa intendi per report... la funzione da usare è sempre fprintf se usi le librerie standard... se usi il namespace std e cin/cout puoi redirigere su un iostream (in questo caso anzi -non ne sono certo, non programmo console in genere- è possibile concatenare gli >> in modo che una cout venga spedita a schermo e su file)...
Ciaociao