Pages : 1
#1 Le 16/10/2008, à 17: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, à 19:36)
Hors ligne
#2 Le 16/10/2008, à 17: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, à 17: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, à 18: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, à 19: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, à 19:36)
Hors ligne
#6 Le 16/10/2008, à 20:02
- Link31
Re : [Résolu] argument d'un main en c++
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