“Comment empêcher l'utilisateur de pénétrer dans le char lors de la nécessité de Int en C” Réponses codées

Comment empêcher l'utilisateur de pénétrer dans le char lors de la nécessité de Int en C

// return -1 on EOF
int GetPositiveNumber(const char *prompt, const char *reprompt) {
  char buf[100];
  fputs(prompt, stdout);
  fflush(stdout);
  while (fgets(buf, sizeof buf, stdin)) [
    int value;
    if (sscanf(buf, "%d", &value) == 1 && value > 0) {
      return value;
    }
    fputs(reprompt, stdout);
    fflush(stdout);
  }
  return -1;
}

// Usage
int TktAdult = GetPositiveNumber(
    "\nEnter amount of adult tickets:" , 
    "\nPlease enter a positive number!");
if (TktAdult < 0) Handle_End_of_File();
else Success(TktAdult);
Weary Wallaby

Comment empêcher l'utilisateur de pénétrer dans le char lors de la nécessité de Int en C

#include <stdio.h>
int main()
{
    int num=1;
    int numberRead = 0;
    do{
        printf("Enter a number: ");
        numberRead = scanf("%d",&num);
        while(numberRead != 1){
            printf("That is not a number.\n");
           scanf("%*[^\n]");  //or fflush(stdin);
            printf("Enter a number: ");
            numberRead = scanf("%d",&num);
        }
        printf("You entered %d\n",num);
    }while(num != 0);

    return 0;
}
Weary Wallaby

Comment empêcher l'utilisateur de pénétrer dans le char lors de la nécessité de Int en C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    int i=0, isFloat=0, isChar=0;
    int intNum=0;
    float floatNum=0;
    char str[100];
    printf("Enter a number:");
    scanf("%s",str); // no &
    for(i=0; i<strlen(str); ++i)
    {
        // if not 0-9
        if(!((str[i]>='0')&&(str[i]<='9')))
        {
            if(str[i]=='.')
            {
                isFloat ++;
            }
            else{
                isChar ++;
            }
        }
    }
     if(isChar || isFloat > 1)
     {
         printf("This is not a number.");
     }
     else if(isFloat == 1)
     {
         printf("This is a float.");
         floatNum=atof(str);
         printf("input as float %.2f\n",floatNum);
     }
     else {
         printf("This is a valid int.\n");
         intNum=atoi(str);
         printf("input as int %d\n",intNum);
     }
    return 0;
}
Weary Wallaby

Réponses similaires à “Comment empêcher l'utilisateur de pénétrer dans le char lors de la nécessité de Int en C”

Questions similaires à “Comment empêcher l'utilisateur de pénétrer dans le char lors de la nécessité de Int en C”

Plus de réponses similaires à “Comment empêcher l'utilisateur de pénétrer dans le char lors de la nécessité de Int en C” dans C

Parcourir les réponses de code populaires par langue

Parcourir d'autres langages de code