Как ограничить ввод времени в cin?

Я хочу создать фрагмент кода, который ждет некоторое время (скажем, 3 секунды), если вы дадите
ввод …. штраф
Но если вы не дали ввод в течение 3 секунд, переменная должна получить какое-то значение по умолчанию (установленное нами).

Как я могу сделать такой фрагмент?

0

Решение

Может быть, этот код поможет:

#include <iostream>
#include <thread>
#include <chrono>

int getVal(int defaultValue)
{
int val=0;
std::thread t1([&](){
std::cin>>val;
});
std::this_thread::sleep_for(std::chrono::seconds(3));
t1.detach();

if(val==0)
val=defaultValue;
return val;
}

int main()
{
std::cout<<getVal(123);
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]