begin process at 2012 05 29 05:21:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

executer un progrmme avec en arguments des int ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

executer un progrmme avec en arguments des int ?

lundi 4 janvier 2010 à 07:47:48 | executer un progrmme avec en arguments des int ?

cool2source

Bonjour,
J'ai réalisé un programme qui trace des rectangles. Aucun problème les rectangles sont bien rectangles lorsqu'ils apparaissent. Au lancement, le programme demande d'entrer 4 entiers ( correspondant aux coordonnées de 2 points opposés du rectangle ). j'ai utilisé "scanf" pour la saisie des entiers.
J'ai ensuite projeté de reprendre le main() de mon programme afin de pouvoir m'éviter d'avoir à saisir une quelconque valeur durant l'execution du programme. Le but étant cette fois d'envoyer les "int" directement sous forme d'arguments lors de l'execution dans l'invite de commande(en tapant "rect.exe 1 2 20 30" ).

mon main ressemble à :

void main(int argc, char *argv[]) // joliment copié sur qulqu'un
{
printf(machin...
printf(chose...

rect(argv[1], argv[2], argv[3], argv[4]);
}

je ne parviens pas à récupérer de int.. j'ai pris argv[1] et argv[2] pour essayer de les faire parler dans des printf en les mettant à différents formats printf("%d ... "argv[1], *argv[1], &argv[], sizeof(argv[1])et plein d'autres petits test désespérés.
j'ai obtenu plein de résultats que je n'ai pas compris ( comme sizeof(argv[1]) = 2 (taille d'un int ?) ou bien &argv[1] = -50 (adresse négative, dois-je être surpris?)).
(sans ironie dans mes commentaires, ce sont de vraies interrogations.)

Bref avez-vous une idée de comment je pourrais convertir les valeurs du format %s reçues dans mon main() en entiers?

Merci ;)
lundi 4 janvier 2010 à 08:33:42 | Re : executer un progrmme avec en arguments des int ?

fregolo52

Membre Club
Réponse acceptée !
Salut,

Mets-nous ta ligne de commande de test pour voir.

Sinon, essaie des atoi ou strtol (strtoul) sur tes arguments.

sizeof(argv[1]) = 2 : à mon avis ton 1er argument est une chaine de 2 caractères.
lundi 4 janvier 2010 à 11:07:01 | Re : executer un progrmme avec en arguments des int ?

cool2source

Code C/C++ :
la ligne de commande est la suivante :
rect.exe 10 10 30 30

void main(int argc, char *argv[])
{
if(argc > 1)
{
printf("Programme:\t%s\n",argv[0]);
rect(argv[1], argv[2], argv[3], argv[4]);
}
else erreur();

}

Je regarde ce soir pour le "atoi" et "strtol".

Merci ;)
lundi 4 janvier 2010 à 13:40:52 | Re : executer un progrmme avec en arguments des int ?

cool2source

atoi est ce qui me fallait ;)
merci


Cette discussion est classée dans : programme, int, printf, argv, main


Répondre à ce message

Sujets en rapport avec ce message

Argument argv[] en (int) [ par thebigbang ] Bonjour,Je cherche comment récupérer une variable entière à partir de la cette fonction main() :int main(int argc, char * argv[] ){...return 0;}Je vou Conversion de types [ par Berenger ] En C, la fonction main se présente comme ca :int main(int argc, char *argv[]){}Moi, je veux récupérer la valeur de argv[3] pour la stocker et l'utilis mais c'est quoi ce sirque!!!! [ par namgalsipsclar ] salut! bon, je débute en C , mais là j'ai qqs problèmes a la con : 1_ au moment ou je compile ceci:     #include main() {       int a; pr Petite interrogation sur le main [ par jeromedu94 ] Bonjour,Lorsque je crée un projet, dans le fichier C j'ai ça :        int main(int argc, char *argv[])Et je voudrais savoir à quoi corresponde argc et parametre de la fonction main() [ par infodaoudi ] bonjour,dans le programme qui suit : comment executer la fonction main() sachant que j'utilise le vc++ 6.0 (console). autrement dit, comment faire pou Mon programme quitte tout seul [ par darkwhite ] Salut j'ai le code suivant tout con ;#include #include int main(int argc, char *argv[]){  int a,b;  printf("1er nombre:");  scanf("%d",&a);  printf("2 Equation du 3éme degrée [ par jeanphilippe37 ] Slt, je t'envoie le programme de maths, ms j'ai essayé de mettre un system(pause) ms cela me fou une erreur de compilation. Pourré-tu me dire int main(int argc, char ** argv) [ par agent 047 ] Bonjour,mon probleme se porte sur le paramètre "char **argv" de la fonction principale utile pour connaître les adresses de chaque argument.Par exempl Problème de boucle for [ par blue01 ] Bonjour tout le monde,    je fais actuellement un programme pour résoudre et générer des sudoku pour me faire la main.Mon compilateur compile en c++ ( A l'aide [ par alex64100 ] bonjourétudiantt par correspondance, je bataille sur un algo je dois créer un prog en c, calculan les facteurs 1er d'un  entier n a partir de l'algo s


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales