Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1423 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  la fonction main

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

la fonction main

n°1525237
hamoudasaf​ira1
Posté le 07-03-2007 à 14:35:46  profilanswer
 

bonjour à tout le monde  :jap:  
 
j'ai 3 paramétres N,S et Lambda, que je voudrai qu'ils soient des seuils, pour que je puisse faire régler mon filtre. Alors le problème comment les mettres comme arguments dans ma fonction main??????

mood
Publicité
Posté le 07-03-2007 à 14:35:46  profilanswer
 

n°1525245
IrmatDen
Posté le 07-03-2007 à 14:42:20  profilanswer
 

Salut,
 
Ta fonction reçoit les arguments de la ligne de commande dans **argv. Donc il faut que tu parcours argv pour les récupérer, et au besoin les passer d'une chaîne de caractère au format que tu veux.

n°1525264
hamoudasaf​ira1
Posté le 07-03-2007 à 14:54:34  profilanswer
 

il y on a 2 arguments en format double et un en format int donc il pour les faires convertir j'utilise atoi et atof. je pourrai le faire de cette manière:  
 

Code :
  1. for(int m = 2; m < argc; m++)
  2.                     cout << atof(argv[m]) << endl;


mais je ne peux pas les considérer tous comme un double, et il faut les initialisers avant mais je voudrai, que ces 3 paramétres seront mon seuil et je les changerai de la ligne de commande alors comment les initialisers??? et comment je pourrai les mettres?

n°1525297
Taz
bisounours-codeur
Posté le 07-03-2007 à 15:17:34  profilanswer
 

./foo 3.14 1 2

n°1525306
hamoudasaf​ira1
Posté le 07-03-2007 à 15:22:25  profilanswer
 

j'ai fais comme ça:

Code :
  1. Lambda=atof(argv[2]);
  2. S=atof(argv[3]);
  3. NumberOfSteps=atoi(argv[4]);


mais j'ai un erreur quelque part et je ne sais pas ou? est ce qu'il faut que j'initisalise mes paramétres tout d'abord ou comment?

n°1525317
Taz
bisounours-codeur
Posté le 07-03-2007 à 15:26:31  profilanswer
 

merci de poster du C++

n°1525321
hamoudasaf​ira1
Posté le 07-03-2007 à 15:29:46  profilanswer
 

c'est de c++  :lol:  
je converti mes paramétres seulement et je sélectionne l'argument de chaque paramétre c'est tout !!!!!
ce n'est pas comme ça qu'il fuat faire???

n°1525327
IrmatDen
Posté le 07-03-2007 à 15:32:35  profilanswer
 

Non, les indices commence à 0 en C++, alors à moins d'un argument dont tu n'aurais pas parlé, tu sors de ton tableau. Et pour les conversions: http://www.parashift.com/c++-faq-l [...] l#faq-39.2
Ce sera plus sûr que ato* ;)

 

Edit: si tu as installé boost (ou que tu peux le faire), tu peux jeter un oeil du côté de lexical_cast.


Message édité par IrmatDen le 07-03-2007 à 15:35:36
n°1525332
Taz
bisounours-codeur
Posté le 07-03-2007 à 15:35:36  profilanswer
 

qui compile super bien en plus.

n°1525335
hamoudasaf​ira1
Posté le 07-03-2007 à 15:37:41  profilanswer
 

t'a raison sauf que mon arg[1] est mon objet "mon maillage", donc je suis bien compter l'arg1 mais la conversion de double en char se fait avec atof certes, mais je ne sais pas pourquoi j'ai encore un problème??

mood
Publicité
Posté le 07-03-2007 à 15:37:41  profilanswer
 

n°1525349
Taz
bisounours-codeur
Posté le 07-03-2007 à 15:47:42  profilanswer
 

parce que tu as un problème ICC à la ligne 42

n°1525369
hamoudasaf​ira1
Posté le 07-03-2007 à 16:02:18  profilanswer
 

je n'ai pas compris????????????

n°1525392
IrmatDen
Posté le 07-03-2007 à 16:22:39  profilanswer
 

C'est un peu la même chose avec ta question: tu postes 3 lignes de code sensées être fonctionnelles dans lesquelles on ne peut pas trouver ton erreur. Tu ne donnes pas non plus la ligne de commande appellante du coup on peut rien te dire.

n°1525411
hamoudasaf​ira1
Posté le 07-03-2007 à 16:43:12  profilanswer
 

ma ligne de commande est la suivante:
Normal.exe bunny.vtk 0.01 0.001 50
 

Code :
  1. vtkSurface *Surface=vtkSurface::New();
  2. RenderWindow *Window=RenderWindow::New();
  3. Surface->CreateFromFile(argv[1]);
  4. Surface->AddNoise(0.0001);
  5. Window->SetInput(Surface);
  6.             double Lambda,S;
  7. int NumberOfSteps;
  8. Lambda=atof(argv[2]);
  9. S=atof(argv[3]);
  10. NumberOfSteps=atoi(argv[4]);


mes arguments sont implémentés de cette manière.

n°1525412
IrmatDen
Posté le 07-03-2007 à 16:44:47  profilanswer
 

Mais c'est quoi qui marche pas :??:
Faut faire des questions claires avec tout les éléments, on s'en sort pas sinon :p

n°1525509
docusland
Posté le 07-03-2007 à 19:07:15  profilanswer
 

En gros ce qu'ils veulent dire si tu comprends pas hamoudasafira, c'est qu'il faudrait que tu mettes ton code c++ (enfin ton main surtout), au pire ton header, et surtout le message d'erreur que tu as quand tu compiles, ou autrement les infos qu'il te manque à l'arrivée. Enfin sinon on est pas des magiciens, et on ne peut deviner ce que t'as oublié.

n°1526321
TriadPtale
Posté le 09-03-2007 à 12:13:41  profilanswer
 

Question bête : le prototype de ton main ressemble à ceci :
 
int main(int argc, char** argv) ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  la fonction main

 

Sujets relatifs
[réglé] fonction de calcul de distance[PHP objet] p'tit coup de main !
Probleme pour écrire dans un fichier avec la fonction fwritefonction de recherche sur page web
[Réglé] Problème avec ma fonction d'encodage de chaine[PHP] fonction exec() et droits
récupérer des entiers depuis un paramètre de la fonction mainpostgres : executer une fonction "à la main"
[C]Un ptit coup de main sur pointeurs et fonction svp 
Plus de sujets relatifs à : la fonction main


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR