FILE 相关

发布时间:2020-07-07 01:17:10 作者:凌若然
来源:网络 阅读:291

一、FILE结构体:

 #include<stdio.h>

#ifndef _FILE_DEFINED
struct _iobuf
{
         char *_ptr;               //文件输入的下一个位置
         int   _cnt;               //当前缓冲区的相对位置
         char *_base;              //指基础位置(文件的起始位置)
         int   _flag;              //文件标志
         int   _file;              //文件的有效性验证
         int   _charbuf;           //检查缓冲区状况,如果无缓冲区则不读取
         int   _bufsiz;            //文件的大小
         char  *_tmpfname;         //临时文件名
};
typedef struct _iobuf FILE;
#define _FILE_DEFINED
#endif

    文件指针:通常用一个指针变量指向一个文件,这个指针变量即称为文件指针。

    定义的一般形式:    FILE *指针变量标识符;   

        例:FILE *fp;  // fp:指向文件的文件指针 

二、文件的 打开

1.读写文件之前需要进行文件打开(fopen()的调用)

     FILE *fp=fopen((被打开的)文件名,使用文件方式(文件类型和操作要求));

     例:

     FILE *fp1,*fp2;

     fp1=fopen("file","r");

     fp2=fopen("c:\\file","rb");

2.文件使用方式

     1)以字符为标志:


     2)使用情况:

if(fp == fopen("c:\\file","r"))
{
     printf("\nerror on open c:\\file!");
     exit(1);
}

三、文件的 关闭

    文件使用完毕需进行关闭(fclose()的调用)

       fclose(文件指针);     例: fclose(fp);

四、文件的 读写

1、字符读写函数  -------【读写一个字符】

     fgetc()  ---  字符变量=fgetc(文件指针);   其文件必须含有 “读” 权限;可连续多次使用,都区多个字符。

               例: ch=fgetc(fp);

     fputc()  ---  fputc(字符表达式,文件指针);   其文件必须含有 “写、追加 权限; 输入成功则返回写入字符,否则返回EOF。

               例:fputc('a',fp);

2.字符串读写函数 ------- 【读写字符串】

     fgets(字符数组,n,文件指针);  //从文件中读取长度为 n-1 的字符串并存入到字符数组中,读入完后,最后自动加上“\0”.    -------- 读字符串函数

           若过程中遇到“换行”或“EOF”,则提前结束;成功则返回值为字符数组的首地址;否则,返回NULL。

               例: fgets(str,n,fp);

      fputs(字符串,文件指针);  //向指定的文件中写入一个给定的字符串;

           字符串末尾的“\0”不写入文件; 成功返回值为0,否则,返回值非零。

3.数据块读写函数 ------- 【读写数据块】

     fread(buffer,size,count,fp);

     fwrite(buffer,size,count,fp);

注释:buffer:指针,表示存放读入数据的首地址(fread());表示存放要写入文件的数据的首地址(fwrite());

          size:数据块的字节数

          count:要读写的数据块块数

     每执行一次操作,文件内部的位置指针自动向后移一位。

     成功则返回count的值(读写数据块的数目),否则返回0。

          例:

     fread(array,4,8,fp); //读入8个实数存放到array中

     fwrite(array,4,8,fp); //将前8个实数依次写入fp指向的文件中

五、格式化读写函数 ----【 磁盘文件】

     fscanf(文件指针,格式字符串,输入列表);

     fprintf(文件指针,格式字符串,输出列表 );   

函数fscanf和函数scanf等价看,只是fscanf接收将从中读取数据的文件指针作为参数。

函数fprintf和printf等价,只是fprintf还需要一个指向文件的指针,所有数据都写入到这个文件中。

六、随机读写

1、文件定位

 起始点           符号名          数字表示   

SEEK_SET  ----  文件的开头    ----   0

SEEKCUR   ----  文件的当前位  ----   1

SEEK_END  ----  文件的结尾    ----   2

2、文件的随机读写

     移动文件的位置指针后,调用顺序读写函数完成读写,从而达到随机读写的目的。

推荐阅读:
  1. saltstack模块之file相关模块
  2. 文件File

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

file

上一篇:搭建 zabbix 监控系统详解

下一篇:ASP.NET MVC Model验证(二)

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》