Sono ritornata!

Questa volta il mio problema riguarda le conversioni di tipo. Io ho un programma che mi richiede alla console dei numeri. Se inserisco un numero da 1 a 20, il programma mi deve disegnare il perimetro di un quadrato, formato da tanti asterischi per lato in base al numero che ho inserito (ma questo è un problema che cercherò di risolvere da sola). Se scrivo -1, il programma si interrompe, se scrivo un numero non compreso tra 1 e 20, che è diverso da -1, il programma deve visualizzare il messaggio "Misura non valida...", ma se scrivessi una lettera? Mi va in tilt tutto!

In C, scrivevo:
codice:
if(variabile <= "47" && variabile >= "58"){printf("Carattere non valido! Inserire un numero!");}
Ma in C++, la conversione da un numero ad un carattere non è possibile... come faccio?

Io ho scritto questo:
codice:
#include<iostream>
#include<cstdlib>

using namespace std;

int main()
{
    int lato;
    int spazio;
    
    char carattere = static_cast<char>(lato);
    
    while(lato != -1)
    {
        cout << "Inserire misura del lato del quadrato da 1 a 20 (-1 per uscire): ";
        cin >> lato;
        if(lato >= 1 && lato <= 20)
        {
            cout << "OK!" << endl << endl;
        }
        else if(lato == -1)
        {
            break;
        }
        else if(carattere <= "/" && carattere >= ":")  
        {
            cout << endl << "Misura non valida! Inserire un numero compreso tra 1 e 20." << endl << endl;
        }          
    }
    
    system("pause");
    return 0;
}
P.S: Nel precedente problema, "secondlargest = largest" può essere rimosso: ho controllato.