Такая проблема в С++, есть не маленькая программа, нужно вводить с клавиатуры числа и она выводит что ей надо. Между операциями проскакивает частенько команда "Sleep" и проблема состоит в том что пока программа в ожидании окончания операции Sleep можно пользоваться командой cin. то есть программа не дошла еще до нужного ей места, а вводить уже можно. И так же можно вводить сразу несколько переменных через пробел, они тоже считаются. программа просто сразу считывает эти введенные данные а там де они должны быть оставляет пустое место. Подскажите пожалуйста как решить такую проблему. Что бы нельзя было не вовремя вводить переменные и несколько сразу.
Давай отделим мух от котлет. cin предоставляет операции считывания из системного буфера ввода, и именно в этот буфер можно что-то вводить, пока работает Sleep. Сами команды в программе исполняются строго последовательно - это первый урок, линейный алгоритм; пока не закончился Sleep - следующая команда не выполнится. Следовательно, для того, чтобы запретить ввод, необходимо: - отключить вывод на экван вводимых с клавиатуры символов (судя по Sleep, ты пользуешься WinAPI, значит, тебе нужна SetConsoleMode с соответствующими параметрами, гугли по слову "эхо" и названию функции); - очистить буфер перед началом очередного ввода, сначала проверив, что там что-то есть: while(cin.rdbuf()->in_avail()>0){ cin.ignore(); } - снова включить эхо. Но в целом - ты что-то делаешь неправильно. Без кода и задания, правда, сказать сложно...