C语言—文件的操作

1.1 文件的论述

文件:存储在外部介质上的数据集合
键盘可以看作是输入文件
显示器可以看作是输出文件
数据也可以组成一个文件
文件可以分为ASCII文件二进制文件

1.2 文件类型指针

文件结构体类型:FILE
FILE是系统使用typedef定义出来的有关文件信息的一种结构体类型,结构中含有文件名、文件状态和文件当前位置等信息
文件型指针变量:FILE *fp
fp指向某文件的结构体变量,通过该结构体变量中的文件信息访问该文件
注:使用FILE类型需要添加 #include <stdio.h>

1.3 文件的操作

在缓冲文件系统中,每个被使用的文件都要在内存中开辟一块FILE类型的区域,存放与操作文件相关的信息
通过fopen将test1.txt打开,系统在内存中开辟FILE类型的结构体,结构体里存储着test1.txt的文件类型
在这里插入图片描述
对文件操作的步骤:
1、对文件进行读写操作之前要打开文件得到文件指针
2、可以通过文件指针对文件进行读写操作
3、读写操作完毕后,要关闭文件,关闭文件后,就不能通过此文件指针操作文件了

1.4 文件的打开与关闭

1.4.1 文件的打开(fopen函数)

*FILE fp
fp=fopen(“文件路径”,“文件打开的方式”)

注意:相对路径(当前目录下的): “aa.txt”
绝对路径(从根目录开始的路径名称):“D:\demo\test\aa.txt”
文件打开主要使用 r、w、a、r+
带"+"就是可读可写
带"b"就是当二进制文件打开,不带则是当文本文件打开
带"a"就是追加的方式
文件的使用方法

1.4.2 文件的关闭(fclose函数)

fclose函数的调用方式:fclose(文件指针)
例:fclose(fp);
注:在程序终止前应关闭所有使用的文件
返回值: 成功返回0
非成功返回非0

#include <stdio.h>
int main(){
   
	FILE* fp1;
	fp1=fopen(".\\test.txt","r+");
	if(fp1==NULL){
   
		printf("文件test.txt不存在\n");
		return 0;
	}
	printf("打开文件test.txt成功\n");
	int result=0;
	result=fclose(fp1);
	if(result==0){
   
		printf("关闭文件成功\n");
	}
	else{
   
		printf("关闭文件失败\n");
	}
	return 0;
}

1.5 文件的读写

1.5.1 fputc函数和fgetc函数(一次读写一个字符)

1、fputc()把一个字符写入指定的文件 例:fputc(ch,fp)
fputc将c的值写到stream所代表的文件中
返回值:
如果输出成功,则返回输出的字节值
如果输出失败,则返回一个EOF
2、fgetc()从指定的文件读入一个字符 例:ch=fgetc(fp)
fegtc从stream所标识的文件中读取一个字节,将字节值返回
返回值:
以t的方式:读到文件结尾返回EOF
以b的方式:读到文件结尾,使用feof(文件指针)判断结尾
feof是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回。
**注:**以EOF(end of file)作为文件结束标志的必须是文本文件,数据以ASCII码存放(0-255 不可能存在-1)
feof(判断文件结束函数)

// 练习:实现文件的复制
#include <stdio.h>
int main()
{
   
	FILE *
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值