C语言文件操作总结

C语言中文件也是非常重要的一部分,首先文件是由文件内容和文件属性构成,目前阶段可以先认为文件都是在硬盘上存储的,当然这种说法不准确,但就目前所学知识是有限的,可以简单的先这样认为。
文件有两种:程序文件(以.c结尾) 数据文件(以.h结尾)
数据文件的类型:文本文件 , 二进制文件
二进制文件:顾名思义二进制文件就是数据在内存中以二进制形式存储,输出也是二进制。
文本文件:在外存上以ASC||码的形式存储,存储前需转换。(以ASC||码存储的文件)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<windows.h>
int main()
{ 
	int a = 10000;
	FILE *fp = fopen("test.txt", "wb");//定义fp这个文件指针,同时会创建一个FILE结构体用来保存文件的属性等信息
	fwrite(&a, 4, 1, fp);//将fp所指文件的内容写入a中
	fclose(fp);//关闭文件并释放FILE结构体
	fp = NULL;//文件关闭后让fp指针指空
	return 0;
}

上面是一段对文件操作的代码,fp是FILE * 类型的叫做文件指针也叫文件句柄,wb是用二进制方式写入,还应注意这里打开文件和关闭文件分别用了函数fopen和fclose,fopen的返回值是一个文件句柄。(通过文件指针变量能够找到与它关联的文件)。
当程序运行时会默认打开三个文件,分别是,键盘(stdin->标准输入),显示器(stdout->标准输出),显示器(stderr->标准错误)。
文件缓冲区:主要解决的是CPU和磁盘之间速度不匹配的问题(应用程序效率问题)。
缓冲文件系统先为程序中每一个正在使用的文件开辟一块“文件缓冲区”,从内存向磁盘输出数据先送到内存中的缓冲区,装满 缓冲区后才一起送到磁盘上;读数据时,先将磁盘中的文件读取数据输入到内存缓冲区(充满缓冲区),然后再从缓冲去逐个将数据送到程序数据区(程序变量等),缓冲区大小根据c编译系统决定的。
文件的打开方式:“r” 只读 “w” 只写(原来的文件会被清空,会建立一个新的文件)
“a” 追加 “rb” 只读 (二进制)
“wb” 只写 (二进制) “ab” 追加 (二进制)
“r+” 读写 (文本) “w+” 读写 ,清空原来的建立一个新文件
“a+” 读写 在文件末尾进行读写 “rb+” 读写 (二进制)
“wb+” 读写 (二进制) “ab+” 读写 (二进制)在文件末尾读写

文件的随机读写:fseek:SEEK_SET(文件开始)
SEEK_CUR(文件指针当前位置)
SEEK_END(文件末尾)
函数原型 int fseek(FILE *stream,long int offset,int origin)
ftell:返回文件指针相对于起始位置的偏移量。
rewind:相当于fseek从起始位置开始,偏移量为0。
文件结束判定
牢记:在文件读取过程中,不能使用feof函数的返回值直接用来判断文件是否结束。而是应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值