Rechercher : dans
Par :

Caractere espace dans un path en C

Dernière réponse le 5 oct 2008 à 17:07:37 ben, le 5 jun 2003 à 11:19:54 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « caractere espace dans un path en C » dans :
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
Libérer de l'espace sur la partition système VoirVotre disque dur comporte deux partitions, une pour le système et l'autre pour les données et vous constatez que la partition système est quasi pleine alors que l'autre a encore beaucoup d'espace libre. Vous pouvez bien sûr redimensionner vos...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Caractères spéciaux HTML VoirCodage des caractères spéciaux Le standard HTML demande de respecter le codage des caractères ASCII 7 bits, c'est-à-dire que les caractères accentués ne sont pas autorisés. Il faut pour cela utiliser un codage particulier. Pour...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...

1

fat_cartman, le 5 jun 2003 à 12:05:33

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... 

Répondre à fat_cartman

2

HenriCarine, le 5 oct 2008 à 01:35:18

Il faut remplacer ton " " par "%20".

Répondre à HenriCarine

3

bizu53, le 5 oct 2008 à 02:08:35
  • +1

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

Répondre à bizu53

4

HenriCarine, le 5 oct 2008 à 17:00:05

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 ?

Répondre à HenriCarine

5

 bizu53, le 5 oct 2008 à 17:07:37

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

Répondre à bizu53