C语言之文件相关操作

fopen();
作用:以指定方式打开文件

FILE *fopen(
    const char *path;//待打开的文件路径
    const char *mode;//打开方式,有如下:
        //r:以只读方式打开
        //w:只写文件,若文件存在则将内容清零重新写入;若文件不存在则建立该文件
        //w+:可读写文件,规则同上
        //a:以附加的方式打开只写的文件,若文件存在,写入的数据会被加到文件结尾duo文件不存在则建立该文件
        //a+:以附加方式打开可读写的文件,规则同上
        //wb:打开或新建一个二进制文件,只允许写数据
        //wb+:打开或新建一个二进制文件,只允许读和写
        //ab:追加打开一个二进制文件,并在文件末尾写数据
        //ab+:读写打开一个二进制文件,允许读,或在文件末尾追加数据
)//打开成功则返回指向该流的文件指针;失败则返回NULL,并吧错误代码存在error中

fread():

size_t fread(
    void *buffer;//存放读的数据
    size_t size;//读的结构的字节数,例如:size(int)
    size_t count;//最多读的数据个数
    FILE ×stream  //待读文件
)//返回值随着调用格式的不同而不同
//调用格式为:fread(buffer,sizeof(buffer),1,fp);
//读取成功时,当读取的数据量正好是sizeof(buffer)个byte时,返回1(即count)否则返回0
//调用格式为:fread(buffer,1,sizeof(buffer),fp);
//读取成功时,返回实际读取的数据个数(单位为Byte)

fwrite():
作用:将内存中的一块数据写入到本地文本

size_t fwrite(
    const void *buffer;//要写的数据内容
    size_t size;//同上
    size_t count;//写入数据的最大数量
    FILE *stream  //待写入的文件
)//返回当前写入的数据量,即count
//注意:写完数据后要调用fclose()关闭流,不关闭流的话,每次读或写数据后,文件指针都会指向下一个待写或者待读位置的指针。

举例:将一个浮点型数组的中的元素写至FILE *fp所指文件上

float data[10];
if(fwrite(&data,size(float),10,fp) !=10)
    cout<<"fwrite error!"<<endl;

fprintf与fwrite的区别:
fprintf(fp, “%d”, buffer):将数据按指定格式写入文件
fwrite(&buffer, sizeof(int), 1, fp):以二进制方式写入文件

猜你喜欢

转载自blog.csdn.net/qq_31425127/article/details/80908377
今日推荐