C语言——文件操作

什么是文件?

磁盘上的文件是文件。
但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。

文件一般分为两种:程序文件 数据文件 

程序文件:包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。

数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。

本章讨论的是数据文件。

一个文件要有一个唯一的文件标识以便识别和引用,文件名包含3部分:

文件路径+文件名主干+文件后缀

例如: c:\code\test.txt

文件的操作一般有三步:1.打开文件 2.读/写 3.关闭文件

文件的打开和关闭

在操作文件前需要了解一个东西——“文件指针”,就是一个关键的桥梁。

文件指针是一个指向文件流中的位置,用于标识文件流中当前位置的对象,它指向文件中的特定位置,使得文件操作能够顺序读写、定位读写、随机读写。文件操作的所有输入输出都是通过文件指针完成。通过文件指针来定位,处理或者读写文件内容。(文件指针在C语言中是一个指向FILE类型的指针)

定义一个指针变量   pf  他可以指向文件区信息区

FILE* pf 

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

ANSIC 规定使用fopen函数来打开文件,fclose来关闭文件。

 fopen()——打开文件:

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

fclose()——关闭文件:

           FILE* fclose(FILE * stream);

文件的顺序读写

以上的结合起来就是:

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

int main()
{
	FILE* pf = fopen("text.txt ", "w+");
	if (pf == NULL)
	{
		printf("%s\n", strerror(errno));
		return;
	}
	fputc('a', pf);//输入 a
	fclose(pf); //关闭文件
	pf = NULL;
	return 0;
}

如图所示:在源文件所在目录下,原本没有test.txt文件,是w+创建了这个新的文件,并写入一个字符a

文件的随机读写

根据文件指针的位置和偏移量来定位文件指针。简单点说就是想读哪读哪。

1.如果成功,fseek就会返回0;

2.否则返回一个非零;

3;在无法查找的设备上返回值未定义;

 

该函数可以返回文件指针相对于起始位置的偏移量;

让文件回到文件起始位置; 

 文件读取结束判定

牢记:在文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束。

文件读取结束有两种情况:1.读取过程中出现异常;2.读取到文件未尾;
要找出文件读取是哪个原因,就分为以下情况:
文本文件:
·如果用fgetc()读取,要判断feof()的返回值是否为EOF;
·如果用fgets()读取,要判断feof()的返回值是否为NULL(O);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值