C语言文件操作笔记--代码写累了放松一下
来源:互联网 发布:知乎 如何评价王尼玛 编辑:程序博客网 时间:2024/05/16 08:55
所用到的函数:fopen fclose fwrite fread ftell fseek
1、fopen
FILE * fopen(const char * fname,const char * mode);
参数:
fname 可以加入文件路径,但只试过相对路径,绝对路径没试过,文件名用双引号(这好像是废话。。。)
mode 文件打开方式 打开方式有很多 这里只说一下 有些要注意的:
“w” 只读方式创建文件 真的是!创建! 当有已存在文件时会直接用空文件替代掉 只能说此参数慎用
”a“ 当有文件时 直接把指针指向文件尾部 没有文件时会创建该文件 这个挺好用 但是用的时候注意只能在文件尾部添加 想改以写入的信息就不行了 倒是可以用在日志文件信息的写入
“r+”文件可读可写 可以对数据任意读写 但是文件必须存在
2、fclose
int fclose(FILE * stream);
关闭文件流 没啥好说的 唯一要注意的是: 别把这玩意忘了
3、fwrite
int fwrite(const void * buffer,size_t size,size_t count,FILE * stream);
buffer:要写入数据的地址
size:单个数据的字节大小 这里不要忘了sizeof()一下数据类型
count:写入数据的个数
stream:文件指针
4、fread
int fread(void * buffer,size_t size,size_t num,FILE * stream);
buffer:存取数据的变量地址 这里注意一下数据所占的字节大小
size:单个数据的字节大小 这里不要忘了sizeof()一下数据类型
count:取出数据的个数
stream:文件指针
5、fseek
int fseek(FILE * stream,long offset,int origin);
stream:文件指针 这个函数改的就是这个结构体里的变量
offset:相对相对位置的字节(byte)数
origin:相对位置 有三种参数可选
SEEK_SET 文件头
SEEK_CUR 当前位置
SEEK_END 文件尾部
需要注意的是这个函数只会改变流的位置指针 不会改变文件的读取方向
也就是当你用SEEK_END时 如果的原来的尾部指针指向第3个数据 此时会指向3 + offset/sizeof(data)个数据(单蠢的我开始还以为会回头 T T)
6、ftell
long ftell(FILE * stream);
这个函数可以用来计算文件内数据的个数
返回的数是当前文件位置 距离文件头的数量 单位是byte
配合fseek可以很简单的计算出文件内数据的个数
fseek(pf,0,SEEK_END);
end = ftell(pf);
num = end / sizeof(data);
大概就是这样 num就是数据的个数
总结:
这几个函数基本可以实现对文件内容的任意修改和查看
至于fsetpos fgetpos 感觉一个fseek就直接搞定 所以并没有研究
更多的文件操作函数请参考:C语言参考手册 最好是英文原版的
PS:第一次写 嗯嗯~ o(* ̄▽ ̄*)o 值得纪念
- C语言文件操作笔记--代码写累了放松一下
- 怀念经典-累了就放松一下
- 玩累了看点书放松一下
- 很久没有写blog了,要周末正好放松一下
- C语言 写文件操作
- 总算可以放松一下了!
- C语言笔记-文件操作
- C语言写文件操作(一)
- C语言之文件写操作
- 考试结束了,可以放松一下了!
- 总算可以小放松一下了
- C语言文件操作简易代码
- 文件操作简易代码[C语言]
- 放松一下
- 放松一下
- 放松一下
- 放松一下
- c语言学习笔记之文件操作
- 面试之计算机网络TCP协议——三次握手与四次挥手
- Centos通过源代码编译安装httpd并启动
- Mybatis缓存机制
- Android页面跳转和数据传递
- 第11周项目2 -用二叉树求解代数表达式
- C语言文件操作笔记--代码写累了放松一下
- 417. Pacific Atlantic Water Flow
- Android广播与服务
- Android广播接收者
- PHP基础回顾
- Ambari学习5_apache ambari web页面无法访问解决办法
- Android服务
- ffmpeg中的sws_scale算法性能测试
- ionic 项目框架app.js controller.js service.js简析