i;
cin » i;
что под капотом всего этого есть что-то вроде
i = (int) "input_device";
или
i = static_cast<int> "input_device";
Или как происходит перегон введённого числа 10 (к примеру) в консоли в int, ведь всё что вводится в консоль по умолчанию строка?
https://cppinsights.io/ Попробуйте тут посмотреть
Под капотом вызывается перегруженный оператор >>, который внутри себя считывает символы и пытается сконвертировать в число (подобных static_cast'ов там нет)
Понял, а с чего он взял что это будет число? Просто даже если перегруженный оператор для string и для int, всё равно кто-то где-то должен понять что "10" это реально цифра, не "10разпривет"
Супер ссылка!! Спасибо
оператор ввода же знает, что от него хотят получить по итогу (какой тип)
Под капотом там есть operator>>, который и реализует перевод строки в нужный тип любым из способов – от вызова stoi и вплоть до отправки емейла в техподдержку компилятора с просьбой в ответ выслать голубя с результатом. Стандарт языка C++ такие детали не уточняет
Выглядит как С++ написанный на С++ 😳
вводится строка и затем преобразуется в число.
Ты просил ввести число — оно пытается ввести число
Обсуждают сегодня