文件操作

一、打开文件

  FILE *fp=NULL;//初始化文件指针变量

  fp=fopen("test.text","r");//test.text是文件名,r是模式

  if(fp==NULL)

    {dosomething}

  getchar();//暂时

模式说明:

  r:只读方式,不能改变硬盘文件状态。如果文件名不存在,fp就为NULL。

  w:只写方式,要改变硬盘文件状态。如果文件文件名不存在,就新建这个文件,如果存在,就删除了再新建。

  a:追加模式,可以改变硬盘文件状态,在文件末尾添加新的数据(打开的时候不删除原有数据)。如果文件名不存在,就创建一个新文件。

  此外:r+,w+,a+,rw,wr,ar

二、读写文件数据

  1、单字节操作

    (1)、fgetc():从指定文件中读出一个字节长的数据

      char fgetc(FILE *fp);返回数据: 如果是文本文件,返回字符;如果是二进制文件,返回一个字节。(可用r模式)

      eg:while(!feof(fp))//判断是否读取到底了
          printf("%c",fgetc(fp));//读取

    (2)、fputc():把字符写入文件中

      char fputc(char ch,FILE *fp);返回数据:写入成功返回写入字符,失败则返回-1。(ch可以是字符常量或者变量,fp模式必须可写,如w、a、r+)

      eg:while(1)

        {
        ch=getchar();
        if(ch!='#')
          fputc(ch,fp);
        else
          break;
        }

   2、字符串操作

     (1)、fgets():从指定文本文件中读到一个字符串

       char *fgets(char *str,int size,FILE *fp);返回值:str所指向的地址

       注意:读到'\n'和'\0'就停止读

     (2)、fputs():向指定文件中写入字符串

       int fputs(char *str,FILE *fp);返回值:写入成功返回0,失败返回其他。(fp模式包含可写模式)

   3、格式化字符串操作函数

     (1)、fprintf():按照一定格式向文件中写入数据

       int fprintf(FILE *fp,格式化字符串,输出参数列表);fp应包含写方式

       eg:fprintf(fp,"i=%d,j=%0.2f",i,j);fprintf(fp,"abcde%s",str);

     (2)、fscanf():将某格式的数据从文件中读取出来

       int fscanf(FILE *fp,格式化字符串,输入参数列表);fp包含度方式

       eg:fscanf(fp,"i=%d,s=%s",&i,str);如果文件中:i=10,s=hello。那么最后i=10,str=hello

 

   4、二进制数据操作函数

     (1)、fwrite():向二进制文件中写入数据

       int fwrite(unsigned char *buff,int size,int count,FILE *fp);返回值:成功返回1,失败返回其他(fp应包含二进制写入方式,如wb,ab)

     (2)、fread():读取二进制文件中的数据

       int fread(undigned char *buff,int size,int count,FILE *fp);返回值:成功返回1,失败返回其他(fp应包含二进制读方式,如rb)

三、关闭文件

    int fclose (FILE *fp);// 必须要close,不然程序关闭了才完成操作

    fflush(FILE *fp);//这样可以不用关闭,也可完成操作

  

 

转载于:https://www.cnblogs.com/judes/p/5860586.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值