1. Le variabili d'ambiente non vengono espanse nei percorsi che passi a ofstream/fopen & co. Per ottenere il valore di una variabile d'ambiente devi usare getenv.
2. Se non esiste la directory NomeProgramma, non viene creata automaticamente; devi usare la API CreateDirectory per crearla.