Bonjour a tous,
J'ai une petite question a poser concernant une conversion eventuelle de double vers long int.
Voila mon soucis: je lis dans un fichier des entiers entre 1 et 6 555 600 qui me serviront par la suite comme indices pour un vecteur.
Ces entiers sont un par un stockes dans la chaine de charactere tmp qu'ensuite je veux convertir en entier:
long int x = atol(tmp);
Le probleme ici c'est que lorsque tmp represente 100 000, 200 000, etc. x vaut alors 1, 2, etc... .
Lorsque je fais:
cout<<x<<"\t"<<tmp<<"\n"; le programme m'affiche:
1 1
1 1e+05
2 2e+05 ....
Alors, j'ai essayé de faire la meme chose en considerant tmp comme un double et la ca marche avec:
double x = strtod(tmp, NULL);
Comme x represente un indice dans un vecteur, je souhaiterai donc l'avoir sous forme d'entier mais lorsque je fais
x = (long int)x;
Le programme me met des warnings
Une suggestion sur la maniere de resoudre cette enigme?
Pourquoi 1e+05 n'est pas considere comme un long int??
Merci d'avance pour votre aide.
Naira
Partager