C语言——文件的“读”与“写”

C语言中文件的读与写个人感觉是函数的使用,需要用到库函数

函数可以创建一个txt类型的文件,然后把“字符(串)”,“整形”,‘浮点型’放在所创建的txt文件中,

以下是代码的解释:

字符的读写:

以上是文件的写入

而写入的文件就放在我们的项目文件中

 

 解下来是读取文件,依然是myfile文件,该如何读取?

上面的代码是把字符a写入到文件中

这时候就需要用变量来接受这个字符即可

 打印结果:

以上就是单个字符的读与写

下面我们介绍字符串的读和写

 这里的原理图和上面的大差不差;

直接上代码

字符串的读写:

#include <stdio.h>
#include <errno.h>					//errno需要引入的头文件
#include <string.h>					//strerror需要的头文件
int main()
{
	char ch[20]="hello,world";		//要把这个字符串写入到文件中
	FILE* pf=fopen("myfile.txt","w");	//与放入字符在文件中原理图相同
	if(pf==NULL)
	{
		printf("fopen:%s",strerror(errno));
		return 1;
	}
	
	fputs(ch,pf);				//开始放入字符串在文件中	//注:如果不了解函数的参数,可以在网上自行查略
								//这里不解释函数的参数
	
	fclose(pf);
	pf=NULL;
	return 0;
}

 我们可以看到 字符串已经写到文件中了!

写完了,接下来就是要读

道理还是相同

直接上代码:

#include <stdio.h>
#include <errno.h>					//errno需要引入的头文件
#include <string.h>					//strerror需要的头文件
int main()
{
	char ch1[20];		//创建一个接受文件中字符串的数组
	FILE* pf=fopen("myfile.txt","r");	//与读取字符在文件中原理图相同
	if(pf==NULL)
	{
		printf("fopen:%s",strerror(errno));
		return 1;
	}
	
	fgets(ch1,12,pf);	 	//12表示的字符个数,(hello,world)的长度为11,这里会多读一个\0
							//开始把文件中的字符串输入到ch1中	//注:如果不了解函数的参数,可以在网上自行查略
							//这里不解释函数的参数
	printf("%s",ch1);
	fclose(pf);
	pf=NULL;
	return 0;
}

结构体的读与写 :
 

#include <stdio.h>
#include <errno.h>					//errno需要引入的头文件
#include <string.h>					//strerror需要的头文件

struct student					//定义一个结构体变量
{
	char name[100];
	int  age;
	char sex[100];
};

int main()
{
	struct student s1={"张三",18,"男"};//初始化结构体
	FILE* pr = fopen("myfile.txt","w");
	if(pr==NULL)
	{
		printf("fopen:%s",strerror(errno));
		return 1;
	}
	fprintf(pr,"%s %d %s",s1.name,s1.age,s1.sex);//把信息放在文件中
	fclose(pr);
	pr=NULL;
	
	return 0;
}

 大体上是一样 ,只不过是使用的函数不同

接下来读取这个结构体

#include <stdio.h>
#include <errno.h>					//errno需要引入的头文件
#include <string.h>					//strerror需要的头文件

struct student					//定义一个结构体变量
{
	char name[100];
	int  age;
	char sex[100];
};

int main()
{
	struct student s1;//初始化结构体
	FILE* pr = fopen("myfile.txt","r");
	if(pr==NULL)
	{
		printf("fopen:%s",strerror(errno));
		return 1;
	}
	fscanf(pr,"%s %d %s",s1.name,&(s1.age),s1.sex);//读取文件中的信息,放在结构体中
	printf("%s %d %s",s1.name,s1.age,s1.sex);
	fclose(pr);
	pr=NULL;
	
	return 0;
}

 运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值