Conversion d'une chaîne en double
Je suis en train de convertir une chaîne de caractères (const char* argv[]
) à un double
nombre à virgule flottante:
int main(const int argc, const char *argv[]) {
int i;
double numbers[argc - 1];
for(i = 1; i < argc; i += 1) {
/* -- Convert each argv into a double and put it in `number` */
}
/* ... */
return 0;
}
Quelqu'un peut m'aider? Grâce
Grrr! Pas de. Vous voulez convertir une chaîne de caractères, dont le début est pointé, par un const char*, à double
Nah, tous expérimentés programmeur C en sait un
Sûr que si c'est le deuxième argument de la
Eh bien, j'ai juste un "être un âne jour", je suppose. Je ne pouvais pas résister.
Nah, tous expérimentés programmeur C en sait un
const char*
est de 99,9% d'une chaîne de caractères.Sûr que si c'est le deuxième argument de la
main
fonction.Eh bien, j'ai juste un "être un âne jour", je suppose. Je ne pouvais pas résister.
OriginalL'auteur | 2010-05-23
Vous devez vous connecter pour publier un commentaire.
Utilisation
sscanf
(Réf.)ou
strtod
(Réf.)BTW,
-->
strtod
a fait le travail. Merci =DOh, et le
,
au lieu d'un;
était une faute de frappe.OriginalL'auteur kennytm
Ou de l'utilisation
atof
http://www.cplusplus.com/reference/clibrary/cstdlib/atof/
OriginalL'auteur LukeN
Vous pouvez utiliser strtod qui est défini dans stdlib.h
Théoriquement, il devrait être plus efficace que le scanf de la famille de fonctions bien que je ne pense pas que ça va être mesurables.
OriginalL'auteur Isak Savo
Vous n'avez pas dit ce que le format de la
const char*
s peut-être. En supposant qu'ils sont des chaînes de texte comme "1.23", puissscanf(argv[i], "%lf", &numbers[i-1])
devrait faire le travail.Je pense que je faisais allusion à la différence entre le normal et la notation scientifique.
OriginalL'auteur crazyscot