【PE】fwrite与fflush的配合使用

来源:互联网 发布:mac怎么结束应用程序 编辑:程序博客网 时间:2024/05/21 14:56

###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


原创粉丝点击