https://stackoverflow.com/questions/5131647/why-would-we-call-cin-clear-and-cin-ignore-after-reading-input
https://www.tutorialspoint.com/what-is-the-use-of-cin-ignore-in-cplusplus
https://www.tutorialspoint.com/use-of-fflush-stdin-in-c
fflush( )
fflush( )的作用是清除(或刷新)输出缓冲区,并将缓冲的数据移动到控制台(在 stdout 的情况下)或磁盘(在文件输出流的情况下))