fflush(stdin)的详细解释:
/*stdin就是标准输入 std即standard(标准),in即input(输入),合起来就是标准输入。 一般就是指键盘输入到缓冲区里的东西。 */
函数名: fflush
功能: 清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件
原型:int fflush(FILE *stream)
程序例:
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <io.h>
void fflush(FILE *stream);
int main(void)
{
FILE *stream;
char msg[] = This is a test;
/* create a file */
stream = fopen(DUMMY.FIL, w);
/* write some data to the file */
fwrite(msg, strlen(msg), 1, stream);
clrscr();
printf(Press any key to flush\
DUMMY.FIL:);
getch();
/* flush the data to DUMMY.FIL without\
closing it */
flush(stream);
printf(\nFile was flushed, Press any key\
to quit:);
getch();
return 0;
}
void flush(FILE *stream)
{
int duphandle;
/* flush the stream's internal buffer */
fflush(stream);
/* make a duplicate file handle */
duphandle = dup(fileno(stream));
/* close the duplicate handle to flush\
the DOS buffer */
close(duphandle);
}
返回值:
如果成功刷新,fflush返回0。指定的流没有缓冲区或者只读打开时也返回0值。返回EOF指出一个错误。
注意:如果fflush返回EOF,数据可能由于写错误已经丢失。当设置一个重要错误处理器时,最安全的是用setvbuf函数关闭缓冲或者使用低级I/0例程,如open、close和write来代替流I/O函数。
2024-10-21 广告