Salve ragazzi..premetto che ho provato a cercare un pò in giro per la rete ed ho trovato dei risultati,ma molto confusi
Il mio problema è il seguente:
Prendere in input il numero;se "quello" immesso dall'utente è un numero allora prosegui a fare quello che devi fare altrimenti stampa un messaggio d'errore e rieffettua l'inserimentodel numero.

Io ho provato a fare in questo modo (in c):
codice:
int main()
{
//Codice trovato in rete
	int n = 0,i = 0;
	do
	{
			printf ("Inserisci un numero valido ");
			i = scanf("%d",&n);
			if (i==0)
				printf("\nInput non valido!!\n");
	}
	while(i==0);
	
	
}
Ovviamente il suddetto codice non funziona perchè se inserisco anche solo un singolo carattere il programma mi entra in loop.

Ok ragazzi però non ho perso le speranze
Ho provato a fare un altro ragionamento:
ho supposto che la scanf ritorni uno 0 se fallisce,mentre se non fallisce un valore diverso da 0. (chiedo conferma se quanto ho supposto è giusto)
Quindi ho fatto una cosa di questo tipo:
codice:
int main()
{
	int n = 0;
	do
	{
			printf ("Inserisci un numero valido ");
			if (! scanf("%d",&n))
			   printf("\nInput non valido!!\n");
	}
	while(! scanf("%d",&n));
	
	
}
Ma a malincuore entra in loop anche in questo caso.
Guardando la reference della scanf non riesco a capire proprio cosa ritorna la scanf.
Conclusione:
Ci provo a studiare e a documentarmi in modo autonomo ma a volte proprio non mi riesce perciò chiedo a voi.
Non è che riuscireste a darmi una mano?
P.s.Mi interesserebbe anche sapere una soluzione in C++

Grazie in anticipo