c++程序在输入倒计时的时间内,输入数据的问题。

我在用visual studio编写一个c++控制台应用程序。程序当中的一段是我想让在十秒钟之内输入一个值,如果超过十秒钟用户没有输入就按照默认值运行。
我不知道怎么写,给我一个样本或者一个思路也行。

代码如下:

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

int getVal(int defaultValue)
{
    int val = 0;
    std::thread t1([&]() {
        std::cin >> val;
        if (val != 0)
        {
            printf("get value:%d\n", val);
            exit(0);
        }
    });

    std::this_thread::sleep_for(std::chrono::seconds(5));
    t1.detach();


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

int main()
{
    std::cout << "请在限定时间内输入,否则将使用默认值123\n";

    std::cout << "限定时间没有输入,采用默认值:" << getVal(123) <<std::endl;
}

具体使用你可以根据自己的情况摘取关键代码。
提示:测试时不用10秒,少一点时间能加快测试速度。

用心回答每个问题,如果有帮助,请采纳答案好吗,谢谢~~~

int nSec = 10;
DWORD WINAPI TimeCount(LPVOID lpParam)
{
    while(nSec > 0)
    { 
        -- nSec; 
        Sleep(1000); 
    } 
    printf("Time Over!\n"); 
    exit(1); 
} 
int main()
{ 
    int nResult = 0; 
    HANDLE hThread; 
    DWORD dwThreadID;

    printf("4 + 4 = "); 
    hThread = ::CreateThread(NULL,NULL,TimeCount,NULL,0,&dwThreadID); 
    while(1)
    {
        scanf("%d",&nResult); 
        if(nResult == 8)
        { 
            printf("YES\n"); 
            exit(1); 
        } 
        else
        { 
            printf("NO Time %d \n",nSec);       
        } 
    }
    ::CloseHandle(hThread); 
    return 0; 
} 

在console开一个定时器,处理console定时器可以自行百度,在要执行的地方放上SetTimer(NULL, 0, 1000, NULL);,