[ Argv ] assignment makes [..] without a cast

Sakiir -  
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Alors voila J'ai voulu fair mon petit programme à partir d'argument et de fonctions afin de programmer securisé ! ( Eviter les scanf ^^' )
Le lien de mon programme :
http://pastebin.com/1ptZJX0w
Et je me retrouve avec ces erreurs que je ne connais pas.. J'aimerai assigner Des variable à argv[1], argv[2] et argv[3] !
J'espere que vous comprenderez merci !! :D

A voir également:

2 réponses

fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Salut,
Argv[1]=a
Quelle horreur lol.
Ne voudrais-tu pas plutôt faire le contraire : mettre argv[1] dans a ?
De plus attention a est un int alors que argv[1] est un pointeur sur un char.
Il fait donc faire une conversion. Avec strtol par exemple.
N'oublie pas de verifier b diffèrent de 0 pour la division.
Cdlt
-

Google is your friend
1
Sakiir Messages postés 9 Statut Membre
 
donc il faut que je fasse la conversion de mes variable a, b et choix ? strtol() ?
quels est la maniere d'utiliser cette fonction ? je cherche sur google :D
0
Sakiir Messages postés 9 Statut Membre
 
strtol(str, a, base);
par exemple ?
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > Sakiir Messages postés 9 Statut Membre
 
Par exemple. Sauf que tu veux faire du sécurisé, ça va.être bien plus compliqué.
Je te ferai un exemple ce soir.
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
ALors, avant de te donner un exemple, il y a plusieurs points :
Dois-tu être en int, ou long te convient ? Car sinon il faudra convertir strtol en int.
Lorsque tu appelles ton programme (prgmme 50 3 +), il faut que les paramètres soient exclusivement des chiffres, ou 50ahah doit être considéré comme 50 ?

Sinon, après, tu auras plusieurs contrôles :
a+b peut dépasser la capacité maximale. De même que a-b, a*b. Il faut tester que b est différent de 0 pour faire a/b.
0
Sakiir Messages postés 9 Statut Membre
 
Les argument doivent etre uniquement des entier de toutes maniere : ./test 2 2 1
ce ui donne 2+2 car le "1" est 1.Addition :)
Apres je m'n fou totalement que ca soit long ou int :)
0
KX Messages postés 19031 Statut Modérateur 3 020
 
argv est un tableau de char* tu ne peux donc pas lui assigner des valeurs de type int, de plus la taille de ce tableau est de argc, il est donc loin d'être certain que toutes les cases argv[1], argv[2] et argv[3] existent !

De manière générale, argv ne devrait être utilisé que pour la lecture, pas pour l'écriture.
0