我写了一个小程序,
int main(int argc, char *argv[])
{
int n;
std::cout << "Before reading from cin" << std::endl;
// Below reading from cin should be executed within stipulated time
bool b=std::cin >> n;
if (b)
std::cout << "input is integer for n and it's correct" << std::endl;
else
std::cout << "Either n is not integer or no input for n" << std::endl;
return 0;
}
读取std::cin
是阻塞的,因此程序会等待,直到程序有外部中断(也像信号一样)或用户提供一些输入。
我应该如何让语句std::cin >> n
等待一段时间(可能使用sleep()
系统调用)以供用户输入?如果用户没有提供输入并且在规定的时间(比如说 10 秒)完成后,程序应该继续执行下一条指令(即从if (b==1)
语句开始)。