C语言-文件操作1

目录

C语言-文件操作

文本文件和二进制文件

存储格式对比:

小区别

打开文件与关闭

1.文件指针

2.打开文件

3.注意事项


C语言-文件操作

概念:文件是数据的集合,数据集的名称就是文件名。

分类:从用户角度看,Linux系统文件分为设备文件和普通文件

文本文件和二进制文件

1.文本文件

文本文件也叫作字符文件和ASCII文件,每个ASCII值占一个字节,表示一个字符。

2.二进制文件

把数据对应的二进制存储到文件中,是字节序列文件。

存储格式对比:

存储数据123

字符

1

2

3

ASCII(十进制)

49

50

51

ASCII(二进制)

00110001

00110010

00110011

不同的二进制文件需要采用相应的软件打开它,

例如:图片文件需要用图片查看软件,音频文件需要用音乐播放器等。

小区别

文本文件可以换行,例如我们写的C语言程序,就是文本文件,有换行。

二进制文件是数据流,没有换行,没有字符串,也没有空字符结尾的说法。

打开文件与关闭

C语言操作文件,必须先“打开”文件,操作完成后,需要“关闭”文件。

1.文件指针

C语言打开文件时,会为该文件分配一个文件信息区,该信息区包含文件描述信息、缓冲区大小以及缓冲区位置等基本信息,

并将其保存在结构体变量struct _IO_FILE中,别名:FILE(typedef struct _IO_FILE FILE),头文件:stdio.h。

调用函数fopen打开文件时系统会自动分配一个FILE结构体,并把FILE结构体地址作为函数的返回值,即文件指针。

调用关闭文件fclose的时候,除了关闭文件,还会释放文件占用的内存。

2.打开文件

C语言通过库函数fopen来创建或打开文件,调用fopen函数成功后,返回一个文件指针(FILE).

函数声明:

FILE *fopen(const char *filename, const char *mode);

参数介绍:

filename:文件名或包含目录名。

mode:打开方式。

实际开发:文件采用全路径,即包含目录名。

mode:表示文件打开模式

 ‘rb’按照二进制位进行读取。

rt按照二进制读取文本文件。 

模式

含义

说明

r

只读

文件必须存在,否则打开失败。

w

只写

如果文件存在,则清除原文件内容;

如果文件不存在,则创建文件。

a

追加

只写

如果文件存在,则打开文件;

如果文件不存在,则创建文件。

r+

读写

文件必须存在,在只读r的基础上+可写功能。

w+

读写

在只写w的模式上增加可读的功能。

a+

读写

在追加只写a的模式上追加可读的功能。

用法:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>

int main()
{
	FILE *fp = 0;  // 定义文件指针变量

	//以只读的方式打开文件
	if ((fp = fopen("C:/Users/Administrator/Desktop/学习笔记/图片.jdp", "r")) == 0)
	{
		printf("打开文件%s失败。\n","aaa.txt");
	}

	printf("%p\n",fp);

	//关闭文件
	if (fp != 0) fclose(fp);
	return 0;
}

3.注意事项

1)用fopen打开文件时,一定要判断返回值。

      文件打开失败原因:文件不存在、没有权限、磁盘空间满了,都有可能造成打开文件失败。

2)文件指针调用fopen函数,系统动态分配内存,文件操作完成,必须调用fclose关闭文件指针,释放内存,否则会出现后果严重。

3)如果文件指针为空,用fclose关闭它相当操作空指针,后果严重。

谢谢阅读,欢迎指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值