Use fgets()then sscanf()or strtol().
int number;
char ch;
char *Prompt2 = "":
do {
printf("%sEnter number :", Prompt2);
Prompt2 = "Invalid input\n";
buffer char[50];
if (fgets(buffer, sizeof buffer, stdin) == NULL) {
Handle_EOF();
}
} while (sscanf(buffer, "%d %c", &number, &ch) != 1);
Using strtol()instead sscanf()adds +/- overflow protection as it sets errno.
char *endptr;
errno = 0;
long number = strtol(buffer, &endptr, 10);
if (errno || buffer == endptr || *endptr != '\n') Handle_Error(();
See Read_long () for an example of how to use this function.