Alcantornet
Messages postés89Date d'inscriptionmardi 8 février 2005StatutMembreDernière intervention14 novembre 2007
-
14 sept. 2005 à 19:16
Alcantornet
Messages postés89Date d'inscriptionmardi 8 février 2005StatutMembreDernière intervention14 novembre 2007
-
15 sept. 2005 à 10:56
Bonsoir (ou bonjour),
J'ai un gros problème avec Dev-cpp, quand je fais le code suivant:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
for(int i=0;iArg 0: D:\Documents and Settings\Alcantor\Bureau\arg.exe
Arg 1: C:\data
Arg 2: C:\data\text.txt
Arg 3: D:\data
Appuyez sur une touche pour continuer...
Jusqu'ici toujours pas de problème.
Mais quand je tape:
arg.exe "C:\data" "C:\data\text.txt" "D:\data"
J'obtient ceci:
Arg 0: D:\Documents and Settings\Alcantor\Bureau\arg.exe
Arg 1: C:\data" C:\data\text.txt D:\data
Appuyez sur une touche pour continuer...
et je voudrais avoir:
Arg 0: D:\Documents and Settings\Alcantor\Bureau\arg.exe
Arg 1: C:\data\
Arg 2: C:\data\text.txt
Arg 3: D:\data
Appuyez sur une touche pour continuer...
Si qqun pouvait m'aider à trouver une solution, parce que si un utilisateur met "C:\data" je voudrai que ça fonctionne. Merci d'avance (et merci d'avoir lu jusqu'au bout ).
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 14 sept. 2005 à 19:31
salut,
le \ est compris comme un caractere d'échappement, du coup " ne doit
pas etre considéré comme un \ suivi de la fin de la chaine, mais
uniquement comme le caractere "
mets le en double, sans doute t'auras plus ce prob. : arg.exe "C:\data\" "C:\data\text.txt" "D:\data"
Alcantornet
Messages postés89Date d'inscriptionmardi 8 février 2005StatutMembreDernière intervention14 novembre 2007 14 sept. 2005 à 20:06
Merci cosmobob, maintenant j'comprend pourquoi mais il doit bien avoir
un moyen de contourner ou de résoudre le problème, parce que quand je
tape copy "c:\data" "C:\data2" dans le cmd ça fonctionne bel et bien.
Alors j'ai peut-être une idée au lieu d'utiliser int main(int argc, char *argv[]) utiliser
int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)
J'ai fais ce code:
#include <windows.h>
#include <stdio.h>
int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)
{
printf("::%s::\n",lpszArgument);
system("pause");
return 0;
}
Quand je tape:
arg.exe "C:\data" "C:\data\text.txt" "D:\data"
J'obtient ceci:
::"C:\data" "C:\data\text.txt" "D:\data"::
Appuyez sur une touche pour continuer...
Pouvez-vous me dire s'il existe, une fonction qui permet analyser les arguments de lpszArgument pour les avoir dans un tableau comme dans char *argv[].
Alcantornet
Messages postés89Date d'inscriptionmardi 8 février 2005StatutMembreDernière intervention14 novembre 2007 14 sept. 2005 à 20:40
OUhhgh (j te comprend pas BruNews)
Ce que je veux savoir c'est si il existe une fonction qui permet de découper "C:\data" "C:\data\text.txt" "D:\data" en"C:\data","C:\data\text.txt" et "D:\data".