Всем привет. Недавно по приколу начал изучать C++. Это не первый мой язык, так что особых проблем пока не возникает, но есть один вопрос по вводу данных. Написал программу, которая в цикле печатает число, которое я ввожу. Всё хорошо, но если я ввожу не число а например строку - то вижу, что программа начинает пропускать операцию ввода данных и просто выводит число 0 (причём всегда 0, после ввода строки). Как я понимаю, это особенность языка, но может кто-нибудь пояснить почему так происходит, как правильно обрабатывать такие случаи?
0x_virus, когда cin что-то не то считал, там флаг ошибки устанавливается, его нуно сбросить (cin.clear()), а потом очистить в буфере то что не считывается (cin.ignore())
LVV, это какой-то рофл? "не поддерживает"? это в плюсах то? int to str? где я вообще про int to str писал? atoi = C-string (const char*) to int, stoi = C++-string (std::string) to int https://en.cppreference.com/w/cpp/string/basic_string/stol https://en.cppreference.com/w/cpp/string/byte/atoi
undrcrxwn, что за псевдокодеры пошли, человек даже не понимает, что делает функция atoi и stoi и у тебя очень слабое понимание английского. и про не поддержку, ты походу и еще не умеешь кодить на плюсах
добавь в цикл if (cin.fail()) { cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); }