CCCPaste

LEGAJO Y DNI validado

#include 
#include 
using namespace std;


// Función para contar el número de dígitos en un número Dni
int contarDigitos(long long num) {
    int contador = 0;
    while (num > 0) {
        num /= 10;
        contador++;
    }
    return contador;
}

//sobrecarga para contar numero de digitos en un numero Legajo
int contarDigitos(int num){
    int contador = 0;
    while(num > 0){
        num /= 10;
        contador++;
    }
    return contador;
}

// Función para validar el DNI
bool validar(long long  dni){
    int numDigitos = contarDigitos(dni);
    int  minimoDigito = 8;
    int maximoDigito = 10;

    if (numDigitos >= minimoDigito && numDigitos <= maximoDigito) {
        return true;
    }
    return false;
}

//Sobrecarga funcion para validar Legajo
bool validar(int legajo){
    int numDigitos = contarDigitos(legajo);
    int minimoDigito = 4;
    int maximoDigito = 6;

    if(numDigitos >= minimoDigito && numDigitos <= maximoDigito){
        return true;
    }
    return false;
}


int main() {

    long long dni;
    cout << "DNI: ";
    cin >> dni;

    while (!validar(dni)) {
        cin.clear();//limpia el estado de error
        cin.ignore(numeric_limits::max(), '\n');
		cout << "DNI no valido."<> dni;
	}

    int legajo;
    cout << "LEGAJO: ";
    cin >> legajo;

    while (!validar(legajo)) {
        cin.clear();//limpia el estado de error
        cin.ignore(numeric_limits::max(), '\n');
		cout << "Legajo no valido."<> legajo;
	}



	return 0;
}

//numeric_limits para obtener el valor máximo posible de un tipo de datos del bufer
// :es el tipo de datos y max(): devuelve el valor máximo posible para ese tipo