文件的不同理解---C

文件

文件类型

文件一般有两种:程序文件、数据文件
程序文件:包含源程序文件(后缀为 .c),目标文件(windows环境后缀为 .obj),可执行程序(windows 环境后缀为 .exe);
数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,例如程序运行需要从中读取数据的文件,或者输出内容的文件。

文件名

一个文件需要有一个唯一的标识便于我们查找使用
文件名一般包含:文件路径+文件名+文件后缀
eg: c:\vs.code\code\wenjian.txt

C程序在启动的时候,由系统默认给我们打开三个文件:标准输入,标准输出,标准错误,对应的硬件设备依次是:键盘,显示器、显示器
对应FILE 分别叫做:stdin,stdout,stderr*

文件指针:

在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。

FILE*
fopen : 打开文件
FILE *fopen (const char *filename,const char *mode)

FILF *pf 文件指针变量

fclose : 关闭文件
fputs : 往文件中写入内容
fwrite — 写入(二进制形式写入)
wb ---- w : 写入 b :二进制形式

(fputs(“hello world \n”,stdout)); ----- 打印,不会因为特殊符号出现转义(输啥打印啥)
printf ----- 会因为特殊符号而进行转义后打印

文件操作:

在这里插入图片描述
在这里插入图片描述

FILE *fp=fopen(“log.txt”,“w”) ---- “w”表示清空式写入,先将文件清空后重新写入
FILE *fp=fopen(“log.txt”,“a”) ---- “a”追加写入
“b”---- 二进制

文件的顺序读写:

在这里插入图片描述

文件的随机读写:

ftell
返回文件相对于起始位置的偏移量
fseek
根据文件指针的位置和偏移量来定位文件指针

fseek(fp,0,SEEK_SET)---------从fp 文件起始位置开始读取
fseek(fp,0,SEEK_END); size=ftell(fp); 可以用来求fp 文件的大小

(偏移量:SEEK_SET 文件起始,SEEK_END文件结尾;从文件起始向后偏移,偏移量为正数,从文件结尾向前偏移,偏移量为负数)

rewind
将文件的读取位置恢复到最开始

文件结束判断-----feof (file end of file)

在文件读取过程中不能用feof 函数的返回值直接用来判断文件是否结束
文件结束:1. 判定文件读取结束 2. 判定结束原因

fgetc 判断是否为 EOF;
fgets判断返回值是否为NULL;
ferror 检测错误结果;
文本文件读取结束:EOF = -1 ; ctrl+z 文件输入退出

(详细文件操作也可参考本人码云:
https://gitee.com/Coderxingchild/test__-c/blob/master/file/file/test.cpp)

(说明:博客内容可能涉及部分个人理解看法,如有疑问可留言哦~)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值