170 похожих чатов

Ребят, а я верно понимаю, что если есть код а-ля int

i;
cin » i;

что под капотом всего этого есть что-то вроде

i = (int) "input_device";
или
i = static_cast<int> "input_device";

Или как происходит перегон введённого числа 10 (к примеру) в консоли в int, ведь всё что вводится в консоль по умолчанию строка?

9 ответов

17 просмотров

https://cppinsights.io/ Попробуйте тут посмотреть

Под капотом вызывается перегруженный оператор >>, который внутри себя считывает символы и пытается сконвертировать в число (подобных static_cast'ов там нет)

Дмитрий- Автор вопроса
Alexander Karaev
Под капотом вызывается перегруженный оператор >>, ...

Понял, а с чего он взял что это будет число? Просто даже если перегруженный оператор для string и для int, всё равно кто-то где-то должен понять что "10" это реально цифра, не "10разпривет"

Дмитрий- Автор вопроса
Дмитрий
Понял, а с чего он взял что это будет число? Прост...

оператор ввода же знает, что от него хотят получить по итогу (какой тип)

Под капотом там есть operator>>, который и реализует перевод строки в нужный тип любым из способов – от вызова stoi и вплоть до отправки емейла в техподдержку компилятора с просьбой в ответ выслать голубя с результатом. Стандарт языка C++ такие детали не уточняет

Дмитрий- Автор вопроса

вводится строка и затем преобразуется в число.

Дмитрий
Понял, а с чего он взял что это будет число? Прост...

Ты просил ввести число — оно пытается ввести число

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта