Void Main(int argc) comment gerér les arguments? - C++ - Programmation
Marsh Posté le 12-02-2003 à 13:59:00
Code :
|
Marsh Posté le 12-02-2003 à 14:58:28
Et argc le nombre de param, le nom de l'exe étant contenu dans argv[0] (donc argc >= 1).
Marsh Posté le 12-02-2003 à 17:00:47
c'est un pointeur sur un tableau de chaîne, dont un pointeur sur un tableau de tableau de char
Marsh Posté le 12-02-2003 à 17:48:20
En gros, si un char* peut "contenir" une chaîne, un char** peut en "contenir" plusieurs.
(Tu peux remplacer "contenir" par "pointer vers", c'est plus coule )
Marsh Posté le 12-02-2003 à 17:54:52
AGA > achète un bouquin et potasse, c'est le b-a ba ça franchement...
Marsh Posté le 12-02-2003 à 20:58:52
Harkonnen a écrit : AGA > achète un bouquin et potasse, c'est le b-a ba ça franchement... |
ouaip, j'ai acheté un truc sur Visual C++
alors que les MFC ou truc dans le genre
je vais chercher un book mieux ciblé.
Marsh Posté le 13-02-2003 à 09:35:38
j'ai un socket il a donc besoin d'une IP:
Citation : sin.sin_addr.s_addr = inet_addr("192.168.0.10" ); |
mais si je mets
inet_addr(argv[1])
il veut pas
Code :
|
OK les pointeurs de bases c'est pas hypra difficile à comprendre, mais là
Marsh Posté le 13-02-2003 à 09:48:48
argv[1] est un pointeur ! si tu veux récupérer la chaine, tu dois saisir *(argv[1])
c'est pas propre du tout mais bon....
Marsh Posté le 13-02-2003 à 09:50:06
Harkonnen a écrit : argv[1] est un pointeur ! si tu veux récupérer la chaine, tu dois saisir *(argv[1]) |
la tu récupere juste le premier char...
nan, le probleme, c'est que char ** truc != char *** brol
Marsh Posté le 13-02-2003 à 10:02:28
lorill a écrit : |
euh, oui merde ! ça m'apprendra à répondre en 10 secondes entre 2 réunions
Marsh Posté le 13-02-2003 à 10:09:31
lorill > mais j'ai raison en + !! j'ai fait un test rapide qui fonctionne nickel !!
Code :
|
ça marche nickel ! c'est qu'il me ferait douter en + !!
edit: ah ben non effectivement, c'est moi qui me suis loupé sur mon précédent post
Marsh Posté le 13-02-2003 à 10:11:52
Harkonnen a écrit : lorill > mais j'ai raison en + !! j'ai fait un test rapide qui fonctionne nickel !! |
harko, reveille toi... la tu affiches les chaines, et tu prends argv[i], ce qui est parfaitement normal... Mais tu disais qu'il fallait mettre *(argv[i]), hors ce n'est pas ce que tu as mis dans ton test
Marsh Posté le 13-02-2003 à 10:14:21
je m'en suis rendu compte en meme temps que toi apparemment, j'ai édité
Marsh Posté le 13-02-2003 à 21:06:11
leneuf22 a écrit : En gros, si un char* peut "contenir" une chaîne, un char** peut en "contenir" plusieurs. |
Dans l'exemple de Harkonen, il a mis char* et on peut avoir plusieurs arguments
le double * j'ai du mal
Marsh Posté le 13-02-2003 à 21:12:28
AGA a écrit : |
j'ai mis char *argv[]
ce qui signifie que je déclare un tableau de pointeurs. et chaque "case" de ce tableau contient un pointeur vers une chaine de caractères.
char **argv est identique à char* argv[]
Marsh Posté le 13-02-2003 à 21:30:32
Harkonnen a écrit : |
là c'est clair
(comme un boolay j'ai du mettre char **arg[])
avec le tableau c'est clair .
Dans le cas de char **argv
comment manipulerais t'on?
merci bcp
Marsh Posté le 13-02-2003 à 21:41:30
AGA a écrit : |
l'example que je t'ai donné plus haut fonctionne aussi avec **argv.
sinon, tu as aussi :
Code :
|
Marsh Posté le 13-02-2003 à 21:58:01
note pour Musaran & Taz : je sais très bien que le code ci-dessus est deprecated, mais déja qu'il en bave avec les arguments, qu'il apprenne déjà ça, les namespaces viendront après
Marsh Posté le 14-02-2003 à 13:35:59
Harkonnen a écrit : note pour Musaran & Taz : je sais très bien que le code ci-dessus est deprecated, mais déja qu'il en bave avec les arguments, qu'il apprenne déjà ça, les namespaces viendront après |
merci
Oui après
heu... sinon maintenant?
Parceque du code perimé c'est
J'ose te demander la version UpToDate?
merci
Marsh Posté le 14-02-2003 à 13:49:23
AGA a écrit : |
Code :
|
Marsh Posté le 14-02-2003 à 14:04:07
ReplyMarsh Posté le 14-02-2003 à 14:05:38
lorill a écrit : |
j'ai horreur de ces combinaisons d'instructions
en plus pour ce qu'il fait, un argv[i] aurait tout aussi bien fait l'affaire, en etant tellement plus agréable a regarder
Marsh Posté le 14-02-2003 à 14:07:06
chrisbk a écrit : |
moi je suis fan, surtout si on les mets dans des conditions un peu longues, le tout dans un for
Marsh Posté le 14-02-2003 à 14:18:33
j'ai beaucoup de mal à saisir l'utilité de l'arithmetique des pointeurs en C++ (en C, je suis antièrement d'accord mais C++ ...)
Marsh Posté le 14-02-2003 à 14:20:06
chrisbk a écrit : |
ben il a voulu la version avec **argv, je lui donne la version avec **argv
Marsh Posté le 14-02-2003 à 14:23:42
d'un autre coté le char **argv c'est aussi ce qui est marqué dans le topic sur les declarations de Main (les biens, les moins biens , les périmées etc...)
mais moi j'aime mieux char *argv[]
Marsh Posté le 14-02-2003 à 14:24:40
lorill a écrit : |
avec des variables qui s'appelent gato, a, tmp, hein, avoue ?
Marsh Posté le 14-02-2003 à 14:26:36
chrisbk a écrit : |
mmh, presque
plop, kikoo, coin, gerard, selon le moment
Marsh Posté le 14-02-2003 à 17:16:54
kler, moi ossi j'adore un bon go FOR bien chargé et bien lisible
Marsh Posté le 15-02-2003 à 01:09:28
Code :
|
Marsh Posté le 15-02-2003 à 10:08:11
heu ... là c peut etre un peu tro barbare
Marsh Posté le 15-02-2003 à 11:24:46
Musaran a écrit :
|
heureusement qu'il y a le commentaire pour qu'on comprenne bien !
Marsh Posté le 12-02-2003 à 13:54:07
salut je ne comprends pas bien le passage d'argument pour la fction main
void main(int argc, char* argv)
{
}
? je voudrais passer un paramètre à mon appli (ligne de commande)
comment recupéré le paramètre passé ou les params?
merci