//1.试写一个模板函数Input,要求用户输入一个非负数,验证输入的数是否大于或等于0,
//如果不是,告诉用户输入非法,需要重新输入一个数,可尝试3次,函数把当前输入的数作为引用参数返回,
//如果不是,告诉用户输入非法,需要重新输入一个数,可尝试3次,函数把当前输入的数作为引用参数返回,
//成功返回true,失败返回false
template<typename T>
bool Input(T& target)
{
std::cout<<"input a number above 0 :"<<std::endl;
T tmp = T();
int try_time = 3;
while (try_time-- > 0)
{
//cin<<tmp; //complier error,
scanf("%d", &tmp);
if (tmp>= 0)
{
target = tmp;
cout<<"Well done!Input correctly"<<endl;
return true;
}
else
{
if (try_time > 0)
{
cout<<"Error: invalid number, input again:";
}
}
}
cout<<"Failed:try time used out, exit"<<endl;
return false;
}