Всем привет. Недавно по приколу начал изучать C++. Это не первый мой язык, так что особых проблем пока не возникает, но есть один вопрос по вводу данных. Написал программу, которая в цикле печатает число, которое я ввожу. Всё хорошо, но если я ввожу не число а например строку - то вижу, что программа начинает пропускать операцию ввода данных и просто выводит число 0 (причём всегда 0, после ввода строки). Как я понимаю, это особенность языка, но может кто-нибудь пояснить почему так происходит, как правильно обрабатывать такие случаи?
0x_virus, когда cin что-то не то считал, там флаг ошибки устанавливается, его нуно сбросить (cin.clear()), а потом очистить в буфере то что не считывается (cin.ignore())
undrcrxwn, что за псевдокодеры пошли, человек даже не понимает, что делает функция atoi и stoi и у тебя очень слабое понимание английского. и про не поддержку, ты походу и еще не умеешь кодить на плюсах
добавь в цикл if (cin.fail()) { cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); }