Impossibile aprire fstream quando si specifica un percorso assoluto
Domanda
So che questo è piuttosto ridicolo, ma io non riesco a ottenere semplice codice C ++ ofstream al lavoro. Potete per favore dirmi che cosa potrebbe essere sbagliato con il seguente codice:
#include <fstream>
...
ofstream File("C:\temp.txt");
if(File)
File << "lolwtf";
L'apertura del ofstream fallisce ogni volta che specificare un percorso assoluto. I percorsi relativi sembra funzionare senza problemi. Sono davvero incerti su ciò che il problema è qui.
Soluzione
Il percorso non è valido:
"C:\temp.txt"
Il \
fuoriesce il "t" come un carattere di tabulazione orizzontale, in modo che il valore di percorso finisce come:
"C: emp.txt"
Quello che vuoi è:
"C:\\temp.txt"
o
"C:/temp.txt"
Altri suggerimenti
Il problema è nella stringa, non si sfuggire al backslash.
ofstream File("C:\\temp.txt");
Anche se la gente di Windows sembrano preferire il carattere non-standard '\' come un separatore di percorso, lo standard '/' funziona perfettamente ed evita fastidiosi problemi come questo.
Quindi, il mio consiglio è quello di attenersi in barre ...
std::ofstream File("C:/temp.txt");