Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,855 questions

51,776 answers

573 users

How to clear the scanf input buffer in C

1 Answer

0 votes
#include <stdio.h>

int main()
{
    int number;

    while (1) {
        printf("Choose 1, 2, 3 or 4: ");

        if (scanf("%d", &number) != 1) {
            // clear the scanf input buffer
            while ((number = getchar()) != '\n' && number != EOF) {} // fflush(stdin);
        }

        if (number == 1 || number == 2 || number == 3 || number == 4) {
            break;
        }

        puts("Invalid selection, choose again.");
    }

    printf("You choose: %d\n", number);
}



/*
run:

Choose 1, 2, 3 or 4: w
Invalid selection, choose again.
Choose 1, 2, 3 or 4: x
Invalid selection, choose again.
Choose 1, 2, 3 or 4: 7
Invalid selection, choose again.
Choose 1, 2, 3 or 4: 3
You choose: 3

*/

 



answered Aug 8, 2024 by avibootz

Related questions

2 answers 195 views
195 views asked Feb 9, 2021 by avibootz
1 answer 279 views
279 views asked Sep 14, 2014 by avibootz
1 answer 102 views
102 views asked Jul 12, 2023 by avibootz
1 answer 122 views
122 views asked Jul 12, 2023 by avibootz
1 answer 117 views
1 answer 120 views
...