试编写一个模板函数I n p u t,它要求用户输入一个非负数,并负责验证用户所输入的数是
否真的大于或等于0,如果不是,它将告诉用户该输入非法,需要重新输入一个数。在函数非
成功退出之前,应给用户三次机会。如果输入成功,函数应当把所输入的数作为引用参数返回。
输入成功时,函数应返回true, 否则返回f a l s e。上机测试该函数。
关键问题是main函数应该怎么调用呢?
/*. 试编写一个模板函数I n p u t,它要求用户输入一个非负数,并负责验证用户所输入的数是
否真的大于或等于0,如果不是,它将告诉用户该输入非法,需要重新输入一个数。在函数非
成功退出之前,应给用户三次机会。如果输入成功,函数应当把所输入的数作为引用参数返回。
输入成功时,函数应返回true, 否则返回f a l s e。上机测试该函数。*/
#include <iostream>
using namespace std;
template<class T>
bool Check(T & num)
{
int count=0;
cout<<"请输入一个非负数字"<<endl;
do
{
cin>>num;
if(num<0)
{
cout<<"输入非法,请重新输入"<<endl;
count++;
}
else {return true;break;}
}while(count<3);
cout<<"您输入的次数太多,程序结束"<<endl;
return false;
}
int main()
{
template<class T>
T temp;
if((Check(temp)))
cout<<"数字为"<<temp;
return 0;
}