Ho provato ad utilizzare setjmp..
codice:
#include<stdio.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<stdlib.h>
#include<string.h>
#include<setjmp.h>
int main()
{
char r;
jmp_buf buf;
printf("\nCreare una nuova cartella? [s/n]: ");
setjmp(buf);
scanf("%c", &r);
switch(r)
{
case 's':
printf("Creazione della cartella\n");
break;
case 'n':
printf("Ok, fine del programma\n");
break;
default:
printf("\nInput errato, ripetere.. [s/n] :");
longjmp(buf, 2);
break;
}
exit(0);
return 0;
}
Con la differenza che l'output per l'eccezzione viene stampato 2 volte...
codice:
Creare una nuova cartella? [s/n]: a /*input errato...*/
/*il messaggio d'eccezzione viene visualizzato 2 volte..*/
Input errato, ripetere.. [s/n] :
Input errato, ripetere.. [s/n] :s
Creazione della cartella /*output corretto.*/
Aiuto!!!!!