Caractere espace dans un path en C
ben
-
bizu53 Messages postés 1274 Date d'inscription Statut Membre Dernière intervention -
bizu53 Messages postés 1274 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous,
je cherche à savoir command rendre le caractere espace interpretable pour un path
ex: system("C:\\Program Files\\IP Gateway\\IPGateway.exe");
l'espace entre Program et files me pose un problème car il coupe la chaine dès qu'il trouve l'espace
merci
ben
je cherche à savoir command rendre le caractere espace interpretable pour un path
ex: system("C:\\Program Files\\IP Gateway\\IPGateway.exe");
l'espace entre Program et files me pose un problème car il coupe la chaine dès qu'il trouve l'espace
merci
ben
A voir également:
- Espace en c
- Espace insécable - Guide
- Espace de stockage gmail plein - Guide
- Espace stockage google - Guide
- Liberer espace ipad - Guide
- Code ascii espace - Guide
4 réponses
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
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 ?
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