我对我正在学习的一个函数中发现的一段代码感到困惑:
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
命令。(虽然这是真的......但是什么???) 这没有道理。