title: how to handle the input buffer in c
body: <p>I'm new to c programming and I'm facing this problem with my program<br>
  I have a loop that gets a char form the input buffer</p>
  
  <pre><code>while(c = getchar()){
      if(c == '\n') break;
      if(c == '1') Add();
      if(c == '2') getInput(); // this is where the headache starts
      ....
  }
  </code></pre>
  
  <p>here is the getInput() function</p>
  
  <pre><code>void getInput()
  { 
      char ch = getchar();
      if(ch == '1') doSomething();
      ....
  }
  </code></pre>
  
  <p>but when calling getchar() from the getInput() function it only gets characters that were left in the input buffer from the last call of getchar(). and what i want it to do is to get newly typed characters.<br></p>
  
  <p>I've been googling for two hours for a decent way to clear the input buffer but nothing helped. So a link to a tutorial or an article or something is very appreciated and if there's another way to implement this then please tell me.</p>