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