Originariamente inviato da mondobimbi
una soluzione è combinare i due listati

codice:
#include <stdio.h>
#include <string>
#include <sstream>
#include <fstream>
using namespace std;

...
Avrei suggerito la stessa cosa ma bisogna "resettare" il contenuto di "oss" ad ogni iterazione altrimenti il primo file aperto sarà C:\prova0.dat, poi C:\prova0.datC:\prova1.dat poi ancora C:\prova0.datC:\prova1.datC:\prova2.dat...

basta aggiungere l'istruzione

codice:
oss.str("");
alla fine del blocco del for, così da cancellare il contenuto di oss() prima di andarci a scrivere di nuovo.

Inoltre suggerirei la chiusura degli stream alla fine del ciclo for con fclose(prova);

Tra l'altro, valentino86, come diceva Shodan è di gran lunga meglio usare la classe fstream se si parla di C++.