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?
Graziecodice:#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"); }![]()

Rispondi quotando