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 16/10/2008, à 18:14

C'est Moi

[Résolu] argument d'un main en c++

boujour !

j'ai un petit souci, j'aimerais appeler un programme genre

analyse_balistique

en lui donnant des arguments genre la vitesse, la masse, l'angle de tire...

j'aimerais donc pouvoir écrire

./analyse_balistique 40 2 25

je sais que le main attend qqch du type char* mais comme ce programme devra être lancé à partir un scripte  type

#!/bin/bash
for i in 10 20 30 40 
     for j in 0.5 1 1.5 2
          for k in 5 10 15 20 25
                ./analyse_balistique $i $j $k
          end
     end
end

j'aimerai pouvoir lui passer des double

merci de votre aide

Dernière modification par C'est Moi (Le 16/10/2008, à 20:36)

Hors ligne

#2 Le 16/10/2008, à 18:24

rniamo

Re : [Résolu] argument d'un main en c++

int main(int nbDarguments, char **tableauDesArguments) {
  for(int i=0;i<nbDarguments;i++)
      std::cout << tableauDesArguments[i] << '\n';
  return 0;
}

< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#3 Le 16/10/2008, à 18:45

chcamier

Re : [Résolu] argument d'un main en c++

Bonjour,

La bibliothèque standard fourni la fonction strtod qui permet de convertir des chaînes de caractères en doubles.

Cordialement
CC

Hors ligne

#4 Le 16/10/2008, à 19:52

rniamo

Re : [Résolu] argument d'un main en c++

en c++ il y a ostringstream pour ça (désolé le post précédent était pas complet)


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#5 Le 16/10/2008, à 20:03

C'est Moi

Re : [Résolu] argument d'un main en c++

merci pour vos réponses

en fait ça fonctionne avec une fonction :

double a;
a = atof(tableauDesArguments[1]);

merci j'ai trouvé cette fonction  grâce à celle-ci :

strtod

Mais y a pas moyen que le main prenne directement un double ?

Dernière modification par C'est Moi (Le 16/10/2008, à 20:36)

Hors ligne

#6 Le 16/10/2008, à 21:02

Link31

Re : [Résolu] argument d'un main en c++

C'est Moi a écrit :

Mais y a pas moyen que le main prenne directement un double ?

Non.

En C++, il faut utiliser :

#include <sstream>
...
double result;
std::istringstream iss(tableauDesArguments[1]);
iss >> result;

plutôt que des fonctions C moches, peu typées, utilisant des pointeurs et sans support des exceptions.

Hors ligne