Accueil > Forum > > > > Big prob gcc
Big prob gcc
mercredi 14 septembre 2005 à 19:16:04 |
Big prob gcc

Alcantornet
|
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;i<argc;++i){
printf( "Arg %i: %s\n",i,argv[i]);
}
system( "pause");
return 0;
}
Jusqu'ici pas de problème.
J'ouvre le cmd et puis 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
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  ).
|
|
mercredi 14 septembre 2005 à 19:31:07 |
Re : Big prob gcc

cosmobob
|
Réponse acceptée !
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"
a+ 
|
|
mercredi 14 septembre 2005 à 20:06:01 |
Re : Big prob gcc

Alcantornet
|
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[].
|
|
mercredi 14 septembre 2005 à 20:19:55 |
Re : Big prob gcc

BruNews
|
quel rapport entre taper sur une console avec un listing qui passe dans un compilo C/C++ ???
ciao... BruNews, MVP VC++
|
|
mercredi 14 septembre 2005 à 20:40:25 |
Re : Big prob gcc

Alcantornet
|
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".
Ou bien si il faut que je la fasse moi.
|
|
mercredi 14 septembre 2005 à 21:49:58 |
Re : Big prob gcc

BruNews
|
Réponse acceptée !
Regarde CommandLineToArgvW dans MSDN, moi je préfère parser mes arguments avec 2 pointeurs, mais bon...
ciao... BruNews, MVP VC++
|
|
jeudi 15 septembre 2005 à 09:01:24 |
Re : Big prob gcc

Alcantornet
|
Merci beaucoup je crois que vais me débrouiller avec ça.
|
|
jeudi 15 septembre 2005 à 10:56:33 |
Re : Big prob gcc

Alcantornet
|
Voilà un code qui marche pour ceux que ça intéresse:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <shellapi.h>
char** GetArgv(int &nArgs){
char ** argv;
char * out;
out = GetCommandLine();
argv = (char **)malloc(1);
nArgs=0;
int arglen=0;
bool gui=0;
for(int i=0;i<strlen(out);++i){
if(out[i]=='"') gui=!gui;
if(out[i]==' ' && !gui){
if(out[i-1]!=' '){
++nArgs;
//printf("\n%i: ",nArgs);
argv = (char **)realloc(argv,nArgs+2);
argv[nArgs] = (char *)malloc(1);
arglen=0;
}
}else{
//printf("%c",out[i]);
argv[nArgs] = (char *)realloc(argv[nArgs],arglen+16);
argv[nArgs][arglen]=out[i];
argv[nArgs][arglen+1]=0;
++arglen;
}
}
return argv;
}
int main(){
char ** argv;
int narg;
argv = GetArgv(narg);
for(int i=0; i<=narg; i++) printf("%i: %s\n", i, argv[i]);
system("pause");
}
avec ce code j'obtient ceci:
0: "D:\Documents and Settings\folly.KOBRA\Bureau\test.exe"
1: "C:\data\"
2: "C:\data\text.txt"
3: "D:\data"
Appuyez sur une touche pour continuer...
|
|
Cette discussion est classée dans : exe, text, data, txt, arg
Répondre à ce message
Sujets en rapport avec ce message
Modification chaine dans exe [ par nohva ]
Salut à tous ! Voila mon problème. J'ai une appli qui affiche un ShowMessage : "Salut toi". A partir d'une autre appli j'aimerais modifier ce messa
récupérer le text d'une textBox [ par typhoun ]
je voudrai mettre le texte d'une textbox dans un char mais sa me met une erreur.char* data;data = (char*) malloc(15);data = this->textBox1->Text;et l'
lecture d'un fichier txt et affichage (SOS) [ par malouve ]
bonjour,j'ai 2 gros pbsle premier est que je n'arrive pas à lire correctement un fichier txt qui se presente sous la forme d'un tableau à 9 colonnes e
Probleme d'INSERT en vs2005 [ par ghostleretour ]
Bonsoir à tous,Ce petit message HELP car je tourne en rond depuis des heures sur le net et je ne trouve pas de solution à mon probleme.Une exception n
identification de caracteres dans un fichier TXT [ par enrageur ]
Voila j'aimerais compter le nombre de fois qu'il y a un mot dans un fichier text.J'ouvre le fichier text, ensuite je le lit et je le met dans une vari
Impossible ouvrir fichier en C [ par fredsor ]
Bonjour,Je dois développer une appli en C sous eMbedded Visual C++J'essaye betement d'ouvrir un fichier txt avec la fonction fopen(), mais il passe to
Changement de couleur d'un Static Text [ par groschatchat ]
Sous Borland C++ 5.02, j'ai une boite de dialogue contenant un champ Satic Text appelé "IDC_MSG_ALERTE"J'aimerai savoir s'il est possible de changer l
conversion [ par anubis52100 ]
je souhaiterai conaitre le code pour convertir un CString en Char*voila se que j'ai fait mais jarive pas a convertir strNom en char*j'y arive mais qua
quel programme pour modifier un exe [ par ata100t ]
super neuneu en programmation mais tres curieux, (rester au dos et fichier .bat)je souhaite modifier servudaemon.exe histroire de comprendre comment c
Creation controle sans connaitre largeur [ par fredsor ]
Bonjour,J'aimerais pouvoir créer une fenetre contenant un nombre x de boutons, editbox ou static control, a partir de parametre donnés en entrée. Cepe
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|