Ciao, devo controllare che il dato inserito dall'utente sia numerico e che quindi non contenga lettere. In più, devo visualizzare se l'utente preme <ctrl>+z . Ora, sapendo che se si preme <ctrl>+z con getchar viene restituito il valore -1, perchè il programma non funziona se viene premuto ctrl+z?
codice:
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
main(){
int c, flagErr, flag2;
flagErr = 0;
flag2 = 0;
while(c!=0 && c!=10){
c=getchar();
//
if(c!=10){
if(c<'0' || c>'9'){
flagErr = 1;
}
if(c==-1){
flag2 = 1;
}
//printf("%d\n", c);
}
}
if(flagErr==1){
printf("Non hai inserito un valore numerico corretto!\n");
}else{
printf("Hai inserito un valore numerico corretto!\n");
}
if(flag2==1){
printf("Hai battuto <ctrl>+z \n");
}
scanf("%d");
}
Grazie