flush函数
关于flush函数?
fflush是一个在C语言标准输入输出库中的函数,功能是冲洗流中的信息,该函数通常用于处理磁盘文件。fflush()会强迫将缓冲区内的数据写回参数stream 指定的文件中。
函数说明
如果指针指向一个输出流或者是一个最近的一次操作不是输入的更新流,输出刷新将会创造任意未写入的数据给将要被写入文件的流和最近的数据被修改流,并且最后的文件状态改变应该被标记为更新的基础文件的时间戳。
c语言中scanf和fflush的用法
scanf用于从标准输入(键盘)中读取指定格式的数据,fflush用于清空输入缓冲区
scanf()函数在输入完参数后,会将结束标志''也作为输入读取进去,如果接下来用getchar()或scanf()接收字符,就会因''的存在而失效,这时候可以用fflush清空输入缓冲区,防止由于缓冲区没有被清空而导致的输入错误
如果scanf()函数输入时格式不匹配,则本次输入失败,返回值为-0,也会使输入缓存区内的数据改变,而fflush必须要等到缓冲区满了才会真正起作用,这也是要注意的事项之一
C语言fflush(stdin);的用法
首先,你的第二个 fflush(stdin);位置不正确,它一般用在cin的前面另外, fflush(stdin);只能清除输入的内容,并不能清除输入错误的状态而在c++中,你可以用cin.sync();代替它并在它的前面加 cin.clear(); //清错误状态

