C语言 - 文件


文件 :存在硬盘U盘 外存中(外部介质) 的 数据的集合

输入输出 : 数据流,信息从源到端的流动 (stream)
    磁盘->程序:读文件(站在程序的角度)
    程序->磁盘:写文件

//linux:万物皆为文件(包括键盘 显示器)

文件总路径 : D:\CC\temp\file1.dat
    文件路径 D:\CC\temp
        绝对路径
        相对路径
    文件名主干 file1
    文件后缀 .dat

数据文件:
    ASCII码文件 : 文本文件,对应字符转化为ASCII码 12 ->'1' '2'
    二进制文件 : 不进行修改,存入磁盘当中          12->12

//文件缓冲区:(待补充)

文件操作三部曲 :
    1.打开一个文件:fopen  ->fopen();//文件结构体为空:失败
        以Mode方式打开一个文件:Mode:
      ⚪文本文件:
        ⭐只读权限:
            'r', 打开一个用于读取的文本文件,要求文件必须存在,不存在会报错
            'w':文件不存在,创建一个文件,文件存在,清空该文件
            'a':文件不存在,创建一个文件,文件存在,追加一个文本文件
        ⭐增加了写权限:
            'r+':文本文件
      ⚪二进制文件:
            'rb':二进制文件
    1-0. 修改文件
           fread  读:
           fwrite 写:
    2.读写一个文件: r w  ->fprintf();把数据写入到磁盘
                        printf :  "..."转化为字符串 结果写入->显示屏
                        fprintf : 转化为字符串 结果写入->磁盘(文件)
                        sprintf : 转化为字符串 结果写入->buff(缓冲区) (字符串长度)
                              // 返回为int型:字符串长度
    3. 关闭一个文件:fclose ->fclose  
                指针置空 pf = NULL;

三部曲第一步:打开一个文件(找到/新建/追加等)
1.fopen(); 读取文件---输入流

fopen();
语法:FILE *fopen( const char *fname, const char *mode );
示例: FILE *input = fopen( "stuff", "r" );
理解:打开由fname(文件名),返回一个关联该文件的流
      mode(方式)决定了文件的操作方式(r,w,a,rb,wb,ab
                                 r+,w+,a+,rb+,wb+,ab+)
      如果发生错误, fopen()返回NULL;
源码:

三部曲可选步:修改文件
1-0.  fwrite 写+ fread  读

三部曲第二步:读写这个文件
2.fprint(); 把数据写入磁盘(显示器/缓冲区等) ---输出流

fprintf();
语法:int fprintf( FILE *stream, const char *format, ... );
示例: FILE *out;
      out = fopen( "output.txt", "w" );
理解:根据指定的format(格式)方式,发送信息到stream(流)指定的文件(显示屏)
      fprintf()的返回值是输出的字符数,发生错误时返回一个负值. 
源码:
sprintf();
语法:int sprintf( char *buffer, const char *format, ... );
示例: sprintf( string, "file.%d", file_number );
理解:根据指定的format(格式)方式,发送信息到stream(流)指定的文件(缓冲区)
区别:和fprintf()类似, 只是把输出发送到buffer(缓冲区)中.返回值是写入的字符数量
源码:

三部曲第三步:关闭这个文件
3.fclose();---关闭流

fclose();
语法:int fclose( FILE *stream );
举例:FILE *pf = fopen("yhp.txt","w");
      fclose(pf);//我原本指向的数据块 现在不指了 
      pf = NULL; 类似于malloc 释放那块 
理解:函数fclose()关闭给出的文件流, 释放已关联到流的所有缓冲区.
      fclose()执行成功时返回0,否则返回EOF. 
注意事项:最后一定要让pf置空,不然会存在很大隐患

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值