windows - Brug isdigit i C programmering

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg ville brug for hjælp til hvordan man bruger isdigit() i dette eksempel:


#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main()
{
   int usr\_option;
   do
   {
      printf("			************************MENU***********************
");
      printf("			***  1. Enter Code				***
");
      printf("			***  2. Encrypt code and verify if correct	***
");
      printf("			***  3. Decrypt code				***
");
      printf("			***  4. Display number of times code was enter	***
");
      printf("			***		(i) Successfully		***
");
      printf("			***		(i) Unsuccessfully		***
");
      printf("			***  5. Exit Program				***
");
      printf("			***************************************************
");
      printf("
Please enter your option from the menu: ");
      scanf("\%d", &usr\_option); 
      if (isdigit(usr\_option))
      {
          //Inside here is my switch case e.g switch(usr\_option){/*code*/}
      }
      else
      {
        printf("Need to enter a digit
");
      }          
    }//end do while 
    while(usr\_option != 5);
    return 0;
 }


Hvordan kan jeg implementere denne kode for ikke at gå ind i et uendeligt løkke?
Jeg har prøvet forskellige måder, men det virker som om det ikke vil arbejde. Jeg bruger compilers CodeBlocks og Sublime Text 3.

Bedste reference


Hvis du har læst et nummer via scanf("\%d", &usr\_option); så behøver du ikke bruge is\_digit() Du kan bare bruge if eller switch f.eks.


switch(usr\_option)
{
    case 1: enter\_code(); break;
    case 2: encrypt(); break;


Du behøver kun is\_digit, hvis du kontrollerer, at tegn i en streng er cifre eller ej.


dvs. '1' != 1