慕标5832272
fflush() ;清除标准输入缓存。函数名: fflush功 能: 清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件原型:int fflush(FILE *stream)程序例:#include <string.h>#include <stdio.h>#include <conio.h>#include <io.h>void flush(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 的返回值类型是int类型,那么这个int类型具体的返回是什么呢?返回值:如果成功刷新,fflush返回0。指定的流没有缓冲区或者只读打开时也返回0值。返回EOF指出一个错误。注意:如果fflush返回EOF,数据可能由于写错误已经丢失。当设置一个重要错误处理器时,最安全的是用setvbuf函数关闭缓冲或者使用低级I/0例程,如open、close和write来代替流I/O函数。fflush()函数fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上注意事项:C和C++的标准里从来没有定义过 fflush(stdin)。也许有人会说:“可是我用 fflush(stdin) 解决了这个问题,你怎么能说是错的呢?”的确,某些编译器(如VC6)支持用 fflush(stdin) 来清空输入缓冲,但是并非所有编译器都要支持这个功能(linux 下的 gcc 就不支持),因为标准中根本没有定义 fflush(stdin)。