Un modo semplice per fare ciò che è richiesto è avere una piccola funzione (probabilmente inline) che usi la magia del preprocessore per determinare la piattaforma (#ifdef WIN32
, ecc.) E restituisce il carattere delimitatore appropriato.
La risposta è un po 'più complicata perché ci sono altre differenze più significative rispetto al carattere delimitatore. I file system di Windows possono avere radici multiple (C: \, D: \, ecc.), Mentre l'intero FS è rootato in/in Unix-land.
Il miglior consiglio potrebbe essere quello di utilizzare boost::filesystem
.
fonte
2009-06-29 02:52:17
Non l'ho ancora provato con una macchina windwos ma se funziona questo è abbastanza per me. – Janusz
Per quanto funziona, funzionerà. Tenere presente che i percorsi DOS possono iniziare con una lettera di unità e due punti (in caso contrario, sono relativi all'unità corrente). E fai attenzione alle "forcelle" alternative e ai nomi dei dispositivi. –
Windows è effettivamente ok con la barra diretta. –