Страности с типом int в C++ [закрыт]

149
16 августа 2018, 23:30

Начнём с того, что я ещё совсем "зелёный" в программировании. И тут на днях я баловался с С++. Написал консольную прогу, которая просто запрашивает Имя, Фамилия, Возраст, Дата рождения и выводит это на экран. "В общем, ничего нового" - как сказал бы один известный товарищ. Но вовремя тестирования я быстро нажимал клавиши и в тип int ввёл символы. Ну и естественно сразу выскочила ошибка, но прога продолжала выполнять свою работу и в конце вывела результат.

Вопрос что это может быть? Может компилятор? И да не кидайтесь тапками.

Answer 1

Ничего странного тут нет: судя по всему вы использовали cin для ввода, так? Так вот: когда вы ввели букву вместо цифры, то cin выдал ошибку и перестал работать, поэтому вы не смогли ввести следующие значения. Ну а почему вывод сработал? Ну потому что вы приказали программе вывести значения переменных и она эта сделала. Она не в курсе того, что вы не поместили туда нужные вам значения - она не телепат, поэтому вывела то, что в них храниться. Ну а так, как вы не позаботились об их инициализации, там находится мусор.

Проблема, как и в 99.9% случаев не в компиляторе, а где-то между монитором и спинкой кресла.

READ ALSO
Динамическе и статические n-мерные массивы в С++

Динамическе и статические n-мерные массивы в С++

Похоже я не совсем понимаю что из себя представляют двумерные (n-мерные) массивы в C++, чем они являются для оперативной памяти и чем двумерный...

147
time: идентификатор не найден (ctime подрубил)

time: идентификатор не найден (ctime подрубил)

Начал учить C++ , написал маленький код

146
C++ утечка памяти c DPAPI CryptUnprotectData

C++ утечка памяти c DPAPI CryptUnprotectData

Пытаюсь реализовать функцию дешифрования из DPAPIПозже я заметил, что после моей функции в памяти забивается 8

135
Test project не выполняет test case

Test project не выполняет test case

Создал юнит-тест c помощью Boost Test

154