【C/C++系列】fwrite与fflush的配合使用

45 篇文章 0 订阅

Date:2017-12-24

Author: SoaringLee


一、fprintf的使用

fprintf是C/C++中的一个格式化写—库函数,位于头文件<stdio.h>中,其作用是格式化输出到一个流/文件中;函数原型为int fprintf( FILE *stream, const char *format, [ argument ]...),fprintf()函数根据指定的格式(format)向输出流(stream)写入数据(argument)。

 

用法:

 

#include < stdio.h>
#include<stdlib.h>
int fprintf( FILE *stream, const char *format, ... );
fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件. fprintf()只能和printf()一样工作. fprintf()的返回值是输出的字符数,发生错误时返回一个 负值.

Example:

 

 

#include <stdio.h>
int main(void)
{
    FILE *in,*out;
    in = fopen("\\AUTOEXEC.BAT", "rt");
    if(in == NULL)
    {
        fprintf(stderr, "Can not open inputfile.\n");
        return 1;
    }
    out = fopen("\\AUTOEXEC.BAT", "wt");
    if(out == NULL)
    {
        fprintf(stderr, "Can not open outputfile.\n");
        return 1;
    }
    while(!feof(in))
        fputc(fgetc(in), out);
    fclose(in);
    fclose(out);
    return 0;
}

二、fflush的使用

 

 

功能:
 
(1)清空输入缓冲区,通常是为了确保不影响后面的数据读取(例如在读完一个字符串后紧接着又要读取一个字
 
符,此时应该先执行fflush(stdin);。
 
(2)清空文件缓冲区,文件以写方式打开时将缓冲区内容写入文件。
 

 

   注意:此函数仅适用于部分编译器(如VC6),但是并非所有编译器都要支持这个功能(如gcc3.2)。这是一个对C标准的扩充。

 

三、项目经验

在使用fwrite写文件时,有时需要后面紧跟fflush才能将内容写入文件,刷新缓冲区内容。

 

Refer:https://baike.baidu.com/item/fprintf/10942325?fr=aladdin

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页

打赏

飞翔的鲲

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值