Caractere espace dans un path en C
Fermé
ben
-
5 juin 2003 à 11:19
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 - 5 oct. 2008 à 17:07
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 - 5 oct. 2008 à 17:07
A voir également:
- Espace en c
- Espace insécable word - Guide
- Libérer espace gmail - Guide
- Espace de stockage google - Guide
- Code ascii espace - Guide
- Espace insécable google doc - Forum Mail
4 réponses
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
5 oct. 2008 à 02:08
5 oct. 2008 à 02:08
pour qu'une chaîne de caractère contenant un espace ne soit pas interprété comme deux paramètres il suffit de mettre des guillemets l'encadrant (bien évidemment comme tu passes par une chaine de caractères, ces guillemets doivent être des \").
par exemple si tu veux exécuter ton .exe avec cette commande system() dans ton code C :
system("CALL \"C:\\Program Files\\IP Gateway\\IPGateway.exe\"");
et si tu veux lui fournir des paramètres à l'appel de ton programme c'est pareil
system("CALL \"C:\\Program Files\\IP Gateway\\IPGateway.exe\" 12 \"13 14\" 15"); => ça appel ton programme avec les paramètres "12", "13 14" et "15"
edit : je viens de voir qu'HenriCarine a déterré ce sujet de 2003 lol :p mais ma réponse pourra toujours être utile peut-être à qqu'un qui tomberait dessus
par exemple si tu veux exécuter ton .exe avec cette commande system() dans ton code C :
system("CALL \"C:\\Program Files\\IP Gateway\\IPGateway.exe\"");
et si tu veux lui fournir des paramètres à l'appel de ton programme c'est pareil
system("CALL \"C:\\Program Files\\IP Gateway\\IPGateway.exe\" 12 \"13 14\" 15"); => ça appel ton programme avec les paramètres "12", "13 14" et "15"
edit : je viens de voir qu'HenriCarine a déterré ce sujet de 2003 lol :p mais ma réponse pourra toujours être utile peut-être à qqu'un qui tomberait dessus
Utilisateur anonyme
5 juin 2003 à 12:05
5 juin 2003 à 12:05
Si t'es sous win, alors essaie en mettant les noms DOS (8 caracteres + 3 pour l'extension). Sous linux, met "\" devant ton espace.
Pour connaitre le nom dos de ton chemin, mets toi sous fenetre DOS et trace ta route!
Fat_Cartman,
Parce que je le vaux bien...
Pour connaitre le nom dos de ton chemin, mets toi sous fenetre DOS et trace ta route!
Fat_Cartman,
Parce que je le vaux bien...
Je suis un déterreur dans l'âme.
Bizu, je n'ai pas de compilateur C sous la main mais peux-tu vérifier si ma méthode fonctionne ou non. Pour moi oui car %20 fait appel au code ascii en héxa de " " (de même %27 doit donner une ') mais maintenant j'ai un doute, comment le C s'en sort ?
Bizu, je n'ai pas de compilateur C sous la main mais peux-tu vérifier si ma méthode fonctionne ou non. Pour moi oui car %20 fait appel au code ascii en héxa de " " (de même %27 doit donner une ') mais maintenant j'ai un doute, comment le C s'en sort ?
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
5 oct. 2008 à 17:07
5 oct. 2008 à 17:07
non %20 ne passe pas ... à la limite un caractère '\x20' peut-être, mais j'ai la flemme de tester :p
Il ne s'agit pas de langage C mais de langage C faisant appel à un autre langage (celui des commandes batch).
edit : je viens de réfléchir, même si le \x20 ou n'importe quoi d'autre faisant un espace ça ne peut PAS passer, puisque le problème n'est pas la représentation de l'espace, mais l'interprétation de l'espace qui fait suite ! et pour ça il n'y a pas d'autre moyen (je crois) que de mettre des guillemets pour "empaqueter" la chaîne de caractères
Il ne s'agit pas de langage C mais de langage C faisant appel à un autre langage (celui des commandes batch).
edit : je viens de réfléchir, même si le \x20 ou n'importe quoi d'autre faisant un espace ça ne peut PAS passer, puisque le problème n'est pas la représentation de l'espace, mais l'interprétation de l'espace qui fait suite ! et pour ça il n'y a pas d'autre moyen (je crois) que de mettre des guillemets pour "empaqueter" la chaîne de caractères