C++, atoi me donne une valeur d'erreur

Fermé
xfred - 28 déc. 2009 à 03:13
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 28 déc. 2009 à 10:50
salut a tous ,

je ne comprend pas pourquoi atoi ne me renvoi pas ce que je lui donne voici mon code

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <cstdlib>
using namespace std;

int main()
{
int date = 0 ;
string part ;
string  cpliste_des_diffs;
cpliste_des_diffs = "999999999999999999999999999999999999999999999999999999999999                 ";
 cpliste_des_diffs.append("\n 888");

            part = cpliste_des_diffs.substr(0,20);
            cout <<endl << "partie selectioner avec substr en format c. : "<< endl << part.c_str() ;  // jusque la c ok
            date = atoi(part.c_str()) ; // mon probleme se situe ici

            cout   << endl << "resultat " << endl << date << endl  ;  // ce resultat n'est pas bon


return 0;
}



je croi que ca vien du fait que mon string a plus d'une ligne
mais substr ne devrais pas prendre le "\n"

... je suis vraiment coince

merci d,avance

1 réponse

loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
28 déc. 2009 à 10:50
atoi signifie: ascii to int
Et sur ta machine il est probable qu'un entier soit sur 32 bits, ce qui te donne une fourchette de plus ou moins 4 milliards, cqfd !
Bonne continuation.
0