ちょっとしたプログラムを書きましたが、
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)
ステートメント以降) を再開する必要があります。