I am confused by a piece of code found in a function I am studying:
char GetCommand( void )
{
    char command;
    do {
        printf( "Enter command (q=quit, n=new, l=list):  " );
        scanf( "%c", &command );
        Flush();
    }
    while ( (command != 'q') && (command != 'n')
           && (command != 'l') );
    printf( "\n----------\n" );
    return( command );
}
void Flush( void ) {
    while ( getchar() != '\n' )
        ;
}
What I don't quite understand here is the usage of the Flush() function.  I mean, the book I am reading explains it by saying that it prevents the user from inputting more than a single character and then having that character read when they are prompted for input the 2nd time.
What I don't understand is how Flush() is preventing this from happening. It doesn't DO anything.  All it is is a while command. (While this is true......what?????)  Doesn't make sense.
 
     
     
     
    