练习2014081402

/********************************************************************
@file     Main_practise.cpp
@date     2014-8-14
@author   Tiger
@brief    练习
          试编写一个模板函数Input,它要求用户输入一个非负数,并负
          责验证用户所输入的数是否真的大于或等于0,如果不是,它将
          告诉用户该输入非法,需要重新输入一个数。在函数非成功退出
          之前,应给用户三次机会。如果输入成功,函数应当把所输入的
          数作为引用参数返回。输入成功时,函数应返回true, 否则返回
          false。上机测试该函数。
********************************************************************/
#include <iostream>

const double EPS = 0.000001;
const int TIMES = 2;

template <typename T>
bool Input(T& t);

int main(int argc, const char* argv[])
{
    int nInput = 0;

    if (Input(nInput))
    {
        std::cout << "Get input success!" << std::endl;
    }
    else
    {
        std::cout << "Get input fail!" << std::endl;
    }

    system("pause");
    return 0;
}

template <typename T>
bool Input(T& t)
{
    std::cout << "Please Input a number:";

    int nTimes = 0;
    do
    {
        std::cin >> t;
        if (t - 0 >= EPS)
        {
            return true;
        }
        else if (nTimes < TIMES)
        {
            std::cout << "Input illegal!Please Input a number again:";
        }
    } while (nTimes++ < TIMES);

    return false;
}

练习2014081402

时间: 2024-10-08 01:19:03

练习2014081402的相关文章