Подтвердить что ты не робот

Использование cin.get для получения целого числа

Я хочу получить строку чисел один за другим, поэтому я использую цикл while с cin.get() в качестве функции, которая получает мои цифры один за другим.

Но cin.get() получает цифры как char, и хотя я пытаюсь использовать кастинг Я не могу заставить мои переменные содержать числовое значение, а не значение ascii чисел, которые я получаю в качестве ввода.

4b9b3361

Ответ 1

cin.get невозможно отобразить числа. Вы можете сделать это вручную - но зачем беспокоиться о повторной реализации этой функции, поскольку она уже существует? *

int number;
std::cin >> number;

В общем случае операторы потока (<< и >>) занимаются форматированием вывода и ввода, istream::get, с другой стороны, извлекает только сырые символы.


* Конечно, если вам нужно повторно реализовать эту функциональность, для них ничего не нужно.

Чтобы получить числовое значение от символа цифры, вы можете использовать, что коды символов десятичных цифр 0-9 являются последовательными. Таким образом, следующая функция может скрывать их:

int parse_digit(char digit) {
    return digit - '0';
}