Originariamente inviato da Falcon_God
b esiste, se fai una prova di otuput o segui un debug, vedi che la stringa viene riformattata correttamente e la funzione di ricorsione funziona a dovere...alemeno su questo penso di essere sicuro.
Non hai afferrato. La system invoca il prompt e gli passa letteralmente: copy b c:\ciao\\ciao.txt.
b viene interpretato come nome di file, non come qualcosa che elabori tu.

Non ho capito il fatto della concatenazione, scusa, ma non sono molto ferrato, da quel poco che ho studiato mi sembra che in c++ la concatenazione di stringhe si faccia semplicemente con l'operatore di somma, in quanto è stato fatto un overloading della funzione nella libreria string che ho caricato con l'include. Se ho detto qualche cavolata correggetemi.
Tutto giusto, ma tu hai scritto system("copy b c:\\ciao\\ciao.txt"); con l'intenzione di concatenare la stringa b all'interno della system()
Quello che dovevi scrivere era:
codice:
string command = string("copy ") + b + string(" c:\\ciao\\ciao.txt");
system(command.c_str());
PS.Qualche info sul quel boleano bFailIfExists??
Beh, il nome è auto esplicativo. Comunque quel link dice tutto. In breve: se il file esiste già e il parametro è TRUE la funzione fallisce, se FALSE sovrascrive il file.
PPS.Perchè hai dichiarato bFailIfExists con BOOL in maiuscolo? Sapevo che i bool si dichiaravano in minuscolo, cambia qualcosa? o e solo formalità?
Sono mele e pere. BOOL è un tipo di dato (in genere un int) usato dalle API Windows come valore boolean. bool è C++.
PPPS. Quella funzione che mi hai passato se non sbaglio utilizza le api di windows, vero? Quindi devo aggiungere negli include conio.h, vero?
No, quell'header non serve. Per le API Windows è sufficente windows.h (che già hai incluso).