Funcka atoi

0

Witam.
Mam problem przy zamianie wartości string na int w takim kodzie:

string s="83-7200-981-3";
int liczba,l;

while((liczba=s.find('-')) != -1) s.erase(liczba,1);

l=atoi(s.c_str());
 

Wartość s wychodzi 8372009813, ale już przy zamianie przez atoi wartość l wynosi -217924779. Dlaczego tak się dzieje i jak uzyskać poprawną wartość?

2

Zakres 32-bitowej liczby ze znakiem to -2147483648 .. 2147483647.
Twoja liczba jest większa.
Musiałbyś użyć long long int.

0

Ehhh faktycznie głupi błąd. I wtedy funkcja atoll i wszystko pięknie działa. Dzięki za szybką odpowiedź :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1