c语言中的文件操作与使用操作

目录

一.引入

二.文件的操作步骤

三.操作文件函数的一些介绍和使用方法

(1)文件的随机读取int fseek ( )函数使用

(2)rewind()函数将文件指针回到起始位置

(3)fread()函数和fwrite()函数的使用

(4)使用的函数进行实现文件的拷贝

四.总结


一.引入

当我们需要把一些数据通过代码来存储到对应的文件中时,就需要使用一些操作文件的函数来进行实现,下面就是一些函数的一些操作和使用说明。

二.文件的操作步骤

对于文件的操作是用文件指针进行操作,首先需要打开文件,接着是对文件的操作,然后将文件进行关闭并将文件指针置为,代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(){
	FILE * file = fopen("file.txt","w");//以写的方式将文件打开
	if (file != NULL)
	{
		fputs("abcde",file);//在文件中写abcde
	}
	fclose(file);//关闭文件
	file = NULL;//将文件指针置为空
	return 0;
}

当如下结果时就会创建文件成功,会在当前项目下会创建一个file.txt文件

创建的文件中的内容

三.操作文件函数的一些介绍和使用方法

(1)文件的随机读取int fseek ( )函数使用

int main(){
	FILE *file = fopen("file.txt","r");//文件以读的方式进行打开
	fputs("abcdef",file);
	//fseek(file,2,SEEK_SET);//偏移初始位置两个
	//fseek(file,-4,SEEK_END);//游标最后偏移-4个单位
	fseek(file,2,SEEK_CUR);//当前位置偏移两个位置
	char buffer[20];
	fgets(buffer, 20, file);
	printf("%s\n", buffer);//结果为cdef
	return 0;

}

(2)rewind()函数将文件指针回到起始位置

int main(){
	FILE *file = fopen("file.txt","r");
	fputs("abcdef",file);
	fseek(file,2,SEEK_CUR);//当前位置偏移两个位置
	rewind(file);//将文件指针变为起始位置
	char buffer[20];
	fgets(buffer, 20, file);
	printf("%s\n", buffer);//结果abcdef
	return 0;

}

(3)fread()函数和fwrite()函数的使用

1.fread(void *restrict buffer, size_t size, size_t count, FILE *restrict stream)

参数代表的意思依次为:读到的目的地,每次读的字节大小,每次读几个,从那个文件读

2.fwrite(const void * ptr, size_t size, size_t count, FILE * stream)

参数意思依次为:从哪个位置获取数据,每次获取的字节数,每次获取几个,最终输出到哪个位置

(4)使用的函数进行实现文件的拷贝

思路分析:首先需要使用2个文件的路径,一个是需要拷贝的文件的路径,一个是将要拷贝的目的地,然后接着拷贝文件中的字节,拷贝完成后将将文件进行关闭

代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
void CopyTest(char* p1,char* p2){
	FILE *pr = fopen(p1,"rb");//二进制形式
	FILE *pw = fopen(p2, "wb");
	assert(pr != NULL);//判断文件打开是否正常
	assert(pw != NULL);
	int len;
	char ch;
	while ((len = fread(&ch, sizeof(char), 1, pr)) > 0)
	{
		fwrite(&ch,sizeof(char),len,pw);
	}
	fclose(pr);
	fclose(pw);
	pr = NULL;
	pw = NULL;



}
int main(){
	char* p1 = "G:\\1.txt";//最初有数据的文件,这个文件路径要设置自己需要文件的路径
	char* p2 = "G:\\2.txt";//需要拷贝到的目的地,自己设置拷贝好的文件需要存的路径
	CopyTest(p1,p2);
	return 0;

}

使用文件可以将我们需要的数据存储到我们指定的文件中,方便了我们数据的保存,并且可以和结构体结合使用能够存储复杂的数据结构,简单的结构体操作代码如下:

#include<stdio.h>
#include<assert.h>
struct Studnet{
	char name[20];

};
int main(){
	//char* p1 = "G:\\1.txt";
	//char* p2 = "G:\\2.txt";
	struct Studnet stu1 = { "小红"};
	FILE *file = fopen("file.txt","wb");
	assert(file != NULL);//判断文件打开是否正常
	fwrite(&stu1, sizeof(struct Studnet),1,file);//将学生信息存储到文件中
	fclose(file);
	file = NULL;
	return 0;

}

存储结果如下:

四.总结

文件的使用比较简单,需要进行适当练习才能够熟练使用,当遇到需要的操作函数时可以使用帮助手册进行查询,不需要将这些函数背下来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值