Fopen [Résolu]

Signaler
Messages postés
6
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
21 décembre 2004
-
Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011
-
Lorsqu'on utilise la fonction fopen on doit spécifier la destination du fichier à ouvrir. Cependant cette destination doit comporter des double \\
fopen("C:\\salut\\toto.txt", "r");
Est-ce que quelqun connait une manière d'éviter cela ou une fonction permettant de doubler les \ d'une chaine de caractère ?

2 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Ce n'est pas spécifique à fopen mais au langage C. Dans une chaîne de caractères, le caractère \ indique un caractère d'échappement permettant de mettre des caractères spéciaux :
\r -> retour charriot \n nouvelle ligne \t tabulation \0 fin de chaîne. Pour insérer un véritable \, il faut donc le doubler dans les chaînes.

Pour les chemins d'accès des fichiers, si tu veux éviter de doubler les \, tu peux mettre /

fopen("C:/salut/toto.txt", "r");

De toute façon, il vaut mieux éviter de mettre des paths en dur dans le code, il est préférrable de demander à l'utilisayteur de le rentrer ou de le construire à partir du répertoire de l'exe ou autre chemins connus.
Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011

J'vais te dire un truc aussi, si ton programme lit une chaine de caractère qui contient par exemple C:\Windows\System32\loll.exe , tu peux filer cte chaine telle quelle à fopen()...c'est juste si elle est manuelle que tu dois mettre les \\
voila, bonne soirée!

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))