Essai un truc du style :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main ( )
{
char *pointeur;
char *separateur = { "-i:" }; // Le séparateur
char *buffer;
char *Chaine_Entrante="-i:125.0.2.1";
buffer = strdup ( Chaine_Entrante );
// premier appel,
pointeur = strtok( buffer, separateur );
printf ("Mot de la phrase : %s\n", pointeur);
getchar (); // pause en mode console
return 0 ;
}
je ne connais pas plus simple....
-------------------------------
Réponse au message :
-------------------------------
> et tu fais comment pour enlever le "-i:" de l'argument afin de n'avoir que l'adresse ?
>
>
Ben01n
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Alors pour la syntaxe des commandes fait plutot
> > -i:Addr_IP
> > Addr_Ip étant l'adresse IP et ainsi de suite .
> > Apres tu recuperes tous les commandes et tu cherches dans les chaines de caracteres si les options du style -i: est présent dans ta chaine et ainsi de suite....
> >
> > Trinita,
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > merci trinita pour ta réponse
> > >
> > > je sais je l'ai déjà fais au dessus du code que j'ai mis mais comment je peux faire pour que mon prog puisse mettre un argument dans une variable si il trouve un arg connu du type "-i" ou "-p"..
> > > et le tout en gardant la possibilité de pouvoir entrer les arguments dans l'ordre que je veux
> > >
> > >
> > >
> > >
Ben01n
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Slt
> > > >
> > > > Sous windows on fait un truc du genre :
> > > >
> > > > main ( int argc, int *argv[] )
> > > > {
> > > >
> > > > // Pour récupérer les params
> > > >
> > > > argc -> contient le nombre de parametres
> > > > argv[x] -> contient la valeur du parametres x étant la position 1 2 3 ou ...
> > > > ...
> > > > }
> > > >
> > > > Bonne Prog....
> > > >
> > > > trinita,
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Salut à tous !
> > > > > je prog sous linux et j'ai des petits problèmes avec mes arguments en ligne de commande
> > > > > j'aimerais pouvoir lancer mon porg avec les arguments suivants :
> > > > > -i (suivi d'une adresse ip)
> > > > > -p (suivi d'un numero de port)
> > > > > -v
> > > > > et -h (pour afficher une aide)
> > > > >
> > > > > pour cela j'ai trouvé le code suivant :
> > > > >
> > > > > static char optstring[] = "hi:vp:";
> > > > > while ( ( optch = getopt(argc, argv, optstring)) != -1)
> > > > > switch ( optch ) {
> > > > > case 'h' : /* argument '-h' */
> > > > > help();
> > > > > break;
> > > > > case 'v' : /* argument '-v' */
> > > > > affichage = 1;
> > > > > break;
> > > > > case 'i' : /* argument '-i xxx.xxx.xxx.xxx' */
> > > > > strcpy ( adresse, optarg );
> > > > > ip = 1;
> > > > > break;
> > > > > case 'p' : /* argument '-p xxxx' */
> > > > > port = atoi ( optarg );
> > > > > po = 1;
> > > > > break;
> > > > > default :
> > > > > puts("Argument inconnu !");
> > > > > }
> > > > > for ( ; optind < argc; ++ optind )
> > > > > {
> > > > > printf("argv[%d] = '%s'\n",optind, argv[optind]);
> > > > > }
> > > > >
> > > > > Ce code me permet de lancer mon appli avec :
> > > > > monprog -i 123.123.123.123 -p 5000 -v
> > > > > ou
> > > > > monprog -p 5000 -i 123.123.123.123 -v
> > > > > ...
> > > > > bref de mettre mes arguments dans n'importe quel ordre
> > > > > jusque là pas de problème
> > > > > mais le problème c'est que mon application devra pouvoir être compilée autant sous linux que sous windows
> > > > > OR la fonction "getopt" n'est pas portable sous windows
> > > > >
> > > > > donc quelqu'un avait une idée pour faire la même chose sans utiliser "getopt" ça pourrait m'aider
> > > > >
> > > > > merci d'avance
> > > > >
> > > > >
> > > > >
Ben01n
> > > >
> >