Salve a tutti.
Ho compilato la seguente parte di codice e andando a testare mi va in crash quando inserisco un carattere invece di un numero, insomma quando il carattere immesso è diverso da un numero.
Se metto tutto lo switch nel main tutto ok nel senso che se inserisco un carattere o numero o quel che sia fa entrare in azione il default e quindi non succede niente.codice:#include<stdio.h> int login(){ int indice; printf("Scegli un azione inserendo il numero corrispondente\n"); printf("*********************************************************\n"); printf("1. Accesso con autenticazione\n"); printf("2. Accesso senza autenticazione\n"); printf("0. Uscita\n"); printf("*********************************************************\n"); scanf("%d",&indice); switch (indice){ case 0: /*Usicta dal login*/ printf("\n\nArrivederci!\n\n"); break; case 1:/*Accesso con autenticazione*/ printf("Accesso con autenticazione!\n"); break; case 2:/*Accesso senza autenticazione*/ printf("Accesso senza autenticazione!\n"); break; default://Riaccede al login per autenticazione errata printf("\n\nHai inserito un indice inesistente, riprova!\n\n"); login(); break; } return 0; } int main (void){ login(); return 0; }
Se invece compilo il codice come sopra e inserisco un carattere mi parte all'infinito lo switch e sono costretto ad interrompere.
C'è un modo per far si che all'immissione da tastiera faccio controllare al computer che quello inserito sia effettivamente un numero e non un carattere?
E' l'unica soluzione che mi sia venuta in testa.

Rispondi quotando