в некоторых случаях нужно что-то показать юзеру и подождать, пока он не нажмёт Enter.
В паскале это решалось функцией ReadLn(), а в Си обычно в этих случаях юзают getchar() (в C++ cin.get()).
Но. Если до этого момента осуществлялся ввод, то, если он не был полностью считан, оставшиеся в буфере символы будут схаваны getchar'ом и, соответственно, пользователя ждать никто не станет. Выходов несколько - либо считать несколько раз (что некрасиво), либо вычистить буфер и считать один раз.
Нашёл реализацию второго способа (ссылка) и доработал его слегка. Вот что получилось:
#include <iostream>
#include <limits>
using namespace std;
void MyPause()
{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n'); // Очистка буфера
cout << "Нажмите Enter для продолжения..." << endl;
cin.ignore(numeric_limits<streamsize>::max(),'\n');
}
4 комментария:
гавно твой код
аргументируй
Спасибо, помогло=)
Пожалуйста )
Отправить комментарий