c语言的查漏补缺(五.文件操作)

〇.写在前面

若读者朋友们发现问题,请不吝斧正。

一.文件指针

(1)每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统声明的,取名FILE
(2)每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,
使用者不必关心细节。
(3)为了方便,我们使用文件指针来控制这个结构体变量,从而起到操作文件的作用。
(4)操作文件指针的函数有:fseek,ftell和rewind等

二.文件的打开和关闭

(1)//打开文件
FILE * fopen ( const char * filename, const char * mode );
(2)//关闭文件
int fclose ( FILE * stream )

#include <stdio.h>
#include <stdlib.h>

int main()
{
	FILE* pf = fopen("a.txt", "w");
	if (pf == NULL)
	{
		printf("file open failed");
		exit(-1);
	}
	fputs("文件操作案例。",pf);
	fclose(pf);
}

在这里插入图片描述

三.文本文件和二进制文件

(1)根据数据的组织形式,数据文件被称为文本文件或者二进制文件。
(2)数据在内存中以二进制的形式存储,如果不加转换的输出到外存(即文件,硬盘),就是二进制文件。
(3)如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。
(4)以int a = 10000举例,按二进制形式存储,就是把
a的补码存到外存上;而按文本形式存储,就会把它转换为"10000"五个字符,然后按对应的编码存到外存上。
在这里插入图片描述

四.输入输出流

(1)所谓输入输出流是一种抽象的概念,表示数据流入流出到某个地方
(2)标准输入输出流(stdin,stdout):从键盘中输入,再控制台输出,如scanf,printf
(3)文件输入输出流:把数据插入文件,把数据从文件中提取出来,如fscanf,fprintf
(4)以下函数具体操作见 cplusplus.com
在这里插入图片描述

五.文件缓存区

(1)系统自动地在内存中为程序中每一个正在使用的文件开辟一块“文件缓冲区”。
(2)数据从外存到内存要先经过输入缓存区,从内存到外存要先经过输出缓存区,缓存区中的数据都要充满缓存区才会被输入到目标位置。关闭文件时会刷新缓存区。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值