Fopen

Résolu
Screderman Messages postés 6 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 21 décembre 2004 - 21 déc. 2004 à 18:22
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 - 21 déc. 2004 à 18:55
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 ?
A voir également:

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
21 déc. 2004 à 18:37
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.
3
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
21 déc. 2004 à 18:55
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!! :-))
3
Rejoignez-nous