试编写一个模板函数I n p u t,它要求用户输入一个非负数,并负责验证用户所输入的数是
否真的大于或等于0,如果不是,它将告诉用户该输入非法,需要重新输入一个数。在函数非
成功退出之前,应给用户三次机会。如果输入成功,函数应当把所输入的数作为引用参数返回。
输入成功时,函数应返回true, 否则返回f a l s e。上机测试该函数。
关键问题是main函数应该怎么调用呢?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
/*. 试编写一个模板函数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;
}
|