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;
}
运行结果:

1万+

被折叠的 条评论
为什么被折叠?



