Меня смущает кусок кода, найденный в функции, которую я изучаю:
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' )
;
}
То, что я не совсем понимаю, это использование функции Flush()
. Я имею в виду, что книга, которую я читаю, объясняет это тем, что она не позволяет пользователю вводить более одного символа, а затем читать этот символ, когда им будет предложено ввести второй раз.
Я не понимаю, как Flush()
предотвращает это. Он ничего не делает. Все это команда while
. (Хотя это правда...... что?????) Не имеет смысла.