Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/10/2013, à 11:35

temps

[résolu] argument du main en C

Bonjour,
j'ai déja passé des arguments de type char sans problème en langage C en utilisant

int main(int argc, char *argv[]) {

je voudrai récupéré des arguments de type int,
j'ai donc écris

entier1 = (int)*argv[1];

l'application se compile très bien, mais ne fonctionne pas comme j' l’attends.
quand je fais un

printf("entier1 est %d\n",entier1);

pour vérifier que l'argument entier est bien passé, je m’aperçois que la valeur affichée, n'est pas celle que je donne en argument.

est-ce que quelqu'un sait comment manipuler ce tableau pour que je garde ma valeur ?

Cordialement

Dernière modification par temps (Le 19/10/2013, à 12:08)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#2 Le 19/10/2013, à 12:01

jplemoine

Re : [résolu] argument du main en C

Mes cours de C date de 1992 !!! Donc, un peu d'indulgence, s'il vous plait....

De mémoire, ta syntaxe n'est pas bonne : il faut faire un pointeur sur un entier et pas un cast.
Si tu veux un tableau d'entier, la variable doit avoir des [] mais il n'y a de (int).

le (int) est pour faire du cast (c'est à dire un changement de type de variable).

var_char = '3'
var_int = (int) var_char

var_int va valoir le chiffre trois alors que var_char vaut le caractère 3 (soit 51 en ascii si la mémoire est bonne).




Il faut faire un truc du genre...

int main(int argc, int *arg_int) {
...
arg_int = 3 (par exemple)
...
}

En appelant le main

main (toto, titi)

titi devra être égal à 3.

voir et (paragraphe sur le passage de paramètres par référence).

Cordialement,

Jean-Philippe


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#3 Le 19/10/2013, à 12:04

temps

Re : [résolu] argument du main en C

Bonjour,
je poste en résolu, en fouillant sur les forum nunux, j'ai trouvé une solution possible, la voici en utilisant la fonction atoi

entier1 = atoi(argv[1]);

Merci pour la réponse de jplemoine, nos messages ce sont croisés.

Cordialement

Dernière modification par temps (Le 19/10/2013, à 12:07)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne