Je voudrais prendre un argument de ligne de commande (qui sera un entier supérieur à zéro) et l'utiliser comme un paramètre entier dans une fonction (pour décider quelle partie de la fonction utiliser).C++ char * en erreur int
double func(double x, double y, double z, int n) {
if (n==1) { return 1; }
if (n==2) { return 2; }
// etc
}
int main (int argc, char *argv[]) {
int n = argv[1];
// etc, later I call func(x,y,z,n) with this definition of n
}
Lorsque je tente de compiler, je reçois des avertissements:
warning: invalid conversion from ‘char*’ to ‘int’
warning: initializing argument 4 of ‘double func(double, double, double, int)’
Je pense que je comprends pourquoi cela arrive, je ne sais pas comment le résoudre. Rien que j'ai trouvé jusqu'à présent googling a été trop utile. Je suis assez nouveau au C++, et toute information qui me dirigerait dans la bonne direction serait géniale. Merci pour votre temps.
Astuce: 'argv' est de type' 'char **. Vous pouvez le considérer comme un tableau de chaînes. – Pubby
Vous cherchez peut-être ceci: http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/ – Rubens
L'argument ** ne sera pas ** un nombre entier supérieur à zéro. Ce sera une chaîne de style C qui, on l'espère, ** représente ** la valeur d'un entier supérieur à zéro. Vous devez ** convertir ** cette chaîne de style C en la valeur qu'elle représente. –