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.