//Készítette:Gregorics Tibor
//Dátum:     2010.02.26.
//Feladat:   segédfüggvények számok billentyűzetről való beolvasásához

#include "read.h"

#include <iostream>

using namespace std;

//Feladat: 	Megadott feltételt kielégítő egész számot olvas be.
//Bemenő adatok:string msg	    - kiírandó üzenet
//				string errormsg	- kiírandó hibaüzenet
//              bool check(int) - ellenőrző függvény
//Kimenő adatok:int n (visszatérési érték)  - beolvasott egész szám: visszatérési érték
//Tevékenység:	Billentyűzetről olvas be egy a check() feltételnek megfelelő
//		        egész számot.
int ReadInt(const string &msg, const string &err, bool check(int))
{
    int n;
    bool hiba;
    do{
        cout << msg;
        string str;
        cin >> str;
        n = atoi(str.c_str());
        hiba = n==0 && str!="0" || !check(n);
       if(hiba) cout << err << endl;
    }while(hiba);
    return n;
}

// Ellenőrző függvények
bool Nat(int n) { return n>=0; }         // természetes szám
bool Mark(int n){ return n>=1 && n<=5; } // 1 és 5 közötti egész szám
bool All(int n) { return true; }         // tetszőleges egész szám
