Funkcja atoi.

0

Witam, podaję na początek fragment kodu:

int m;
for(int x=2; x<argc; x++)
            {
                m = atoi(argv[x]);
                cout << m << endl;
            }

Jak zrobić, że gdy input nie jest liczbą tylko np. ciągiem znaków "aa", nie będzie pokazywać mi 0 tylko aa?
Chciałem zrobić try-catch, lecz nie wiem jaki jest odpowiednik z Javy "NumberFormatException ex" w C++.

4

Wystarczy zajrzeć do dokumentacji. atoi nie wspiera informowania o niemożliwej konwersji. Zamiast tego możesz użyć std::stoi, która rzuca wyjątkami, ale to też nie jest idealne rozwiązanie (np. stoi("11aa") zwróci 11). Jeśli chcesz mieć pełną kontrolę to użyj std::strtol lub std::from_chars (C++17).

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