文件操作相关的函数

一、 打开与关闭文件


fopen 用来打开一个文件

FILE * fopen(const char * path,const char * mode); 打开文件成功返回一个文件指针,若打开文件失败则返回NULL。

*path:字符串包含欲打开的文件路径及文件名(例如:D:Admin/A/B.txt),注意为避免与转义字符混淆,使用“/”
     

    r    打开只读文件,该文件必须存在。

   r+    打开可读写的文件,该文件必须存在。

   rb+   读写打开一个二进制文件,只允许读写数据。

   rt+   读写打开一个文本文件,允许读和写。

   w     打开只写文件,若文件存在则文件清空,若文件不存在则建立该文件。  

   w+    打开可读写文件,若文件存在则文件清空,若文件不存在则建立该文件。

   a     若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾。

   a+    若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后。

   wb    只写打开或新建一个二进制文件;只允许写数据。

   wb+   读写打开或建立一个二进制文件,允许读和写。  

   wt+   读写打开或着建立一个文本文件;允许读写。  

   at+   读写打开一个文本文件,允许读或在文本末追加数据。  

   ab+   读写打开一个二进制文件,允许读或在文件末追加数据。  

fclose 用来关闭一个文件

int fclose( FILE *fp );如果成功关闭文件,fclose 返回 0,否则返回EOF。

注意:在文件操作完成后我们应该调用该函数来关闭文件,如果不关闭文件将可能会丢失数据。因为在向文件写入数据时会先将数据输出到缓冲区,待缓冲区充满后才正式输出给文件。


二、 顺序读写数据文件


fputc 将指定字符写到文件指针所指向的文件的当前写指针位置上

int fputc (char c, File *fp);在正常调用情况下,函数返回写入文件的字符的ASCII码值,出错时,返回EOF。

fgets 从文件结构体指针stream中读取数据,每次读取一行

char *fgets(char *buf, int bufsize, FILE *stream);函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。

fprintf 格式化后输出到文件中

int fprintf (FILE* stream, const char* format, [argument]);若成功返回值是输出的字符数,当发生错误时返回一个负值。

注意:用法与printf函数类似,这里只是参数多了一个文件指针,将格式后的结果输出到文件中。

fscanf 格式化输入到文件中

int fscanf(FILE* stream,constchar* format,[argument]);成功返回读入的参数的个数,失败返回EOF。

fread 从一个文件中读取数据,最多读取count个元素,每个元素size字节

size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回0。

 fwrite 向文件写入一个数据块

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);返回实际写入的数据块数目。


三、随机读写数据文件


rewind 得到文件位置指针当前位置相对于文件首的偏移字节数

long ftell(FILE *stream);成功返回当前文件位置,失败返回-1。

fseek 重定位流(数据流/文件)上的文件内部位置指针

int fseek(FILE *stream, long offset, int origin);成功返回0,失败返回非0值(不一定是1)。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值