dmc1989
@dmc1989

Почему строка конвертируется в неправильное число?

Никак не могу понять почему на выходе получается не то число. Вывожу строку все ок, но когда применяю atoi, то число не то, и причем еще и когда использовать в цикле, то оно всегда одно и то же. Уже кучу способов перепробовал... В чем может быть проблема?

string encoded(this->getCombinationIndex(currentTextPart));

char* char_arr;

char_arr = &encoded[0];
            
cout << atoi(char_arr) << endl;
cout << encoded << endl << endl;

getCombinationIndex возвращает число, но в строковом формате.

В цикле 4 итерации. 3 показывают одно и то же число, но 4-я выводит правильное. Тут я умир(
605b6d452f54d941224053.png
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Ваш текст представляет собой число, превосходящее диапазон int. В таком случае ваша реализация atoi выводит максимум возможного.
Можно использовать:
• sscanf long long
• atoll (C++11)
• stoll (C++11)
• from_chars (C++17)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы