Ciao a tutti, sono un pochettino in difficolta con una questione che sembra semplice ma ebbene non mi viene..
Sto scrivendo un semplice programmino e, tralasciando il suo obbiettivo finale ho bisogno di fargli un input con getchar()..
Il problema mi si è presentato quando volevo gestire l'eccezzione, ossia che nei casi che input != 's' o 'n' devo richiamare la funzione getchar()...
posto il codice con la soluzione "minima" tra i commenti...
codice:
#include<stdio.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char r;
printf("\nSi desidera creare una nuova directory di prova?? [s/n] : ");
r = getchar();
/* switch(r)
{
case 's':
printf("Creazione della cartella\n");
//.....
break;
case 'n':
printf("Ok, fine del programma\n");
break;
default:
printf("Input non valido..\n");
break;
}*/
if(r=='s')
printf("Si..\n\n");
/*code..*/
else if(r=='n')
printf("No..\n\n");
else
{
while(r!='s'||r!='n')
{
printf("Input non valido..\n");
r = getchar();
}
}
printf("\n");
exit(0);
return 0;
}
e questo è l'output della 3 differenti situazioni..
codice:
Si desidera creare una nuova directory di prova?? [s/n] : s
Si..
Si desidera creare una nuova directory di prova?? [s/n] : n
No..
Si desidera creare una nuova directory di prova?? [s/n] : w
Input non valido..
Input non valido..
s
Input non valido..
Input non valido..
n
Input non valido..
Input non valido..
s
....
Qualcuno mi puo suggerire un consiglio please???? Volendo ne faccio a meno ma mi voglio togliere questa curiosita!! Una soluzione sarebbe setjmp()??
Grazie a tutti!