fflush(stdin)是什么意思?
fflush(stdin)是清空输入缓冲区的意思。
stdin就是标准输入std,即standard(标准),in 即 input(输入),合起来就是标准输入。 一般就是指键盘输入到缓冲区里的东西。
在清除文件缓冲区时使用,文件以写方式打开时将缓冲区内容写入文件。
scanf函数接收输入数据应注意什么?
scanf函数接收输入数据时,遇以下情况结束一个数据的输入:遇空格、回车、跳格键;遇宽度结束;遇非法输入。
键盘缓冲区就可能有残余信息问题。scanf函数应该只是扫描stdin流,这个残存信息是在stdin中,解决就要在scanf函数之后加个fflush(stdin)。还有注意不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束。
fflush(stdin)是一个计算机专业术语,功能是清空输入缓冲区,通常是为了确保不影响后面的数据读取(例如在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(stdin)。
此函数仅适用于部分编译器(如VC6),但是并非所有编译器都要支持这个功能(如gcc3.2),这是一个对C标准的扩充。
fflush(stdin)返回值:
如果成功刷新,fflush返回0。指定的流没有缓冲区或者只读打开时也返回0值。返回EOF指出一个错误。
注意:如果fflush返回EOF,数据可能由于写错误已经丢失。当设置一个重要错误处理器时,最安全的是用setvbuf函数关闭缓冲或者使用低级I/0例程,如open、close和write来代替流I/O函数。