fflush()函数

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)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值