#include <stdio.h>
#include <stdlib.h>
#define SIZE 2
struct student_type
{
char name[10]
int num
int age
char addr[15]
}stud[SIZE]
FILE *fin
void main()
{
int i
FILE *fp
// 给值
strcpy(stud[0].name,"xz")
stud[0].num=1
stud[0].age=15
strcpy(stud[0].addr,"abcd")
strcpy(stud[1].name,"xw")
stud[1].num=2
stud[1].age=17
strcpy(stud[1].addr,"efgh")
// 打开,写出
fp=fopen("text.txt","wb")
for(i=0i<SIZEi++)
fwrite(&stud[i],sizeof(struct student_type),1,fp)
fclose(fp)
// 清数据
strcpy(stud[0].name,"")
stud[0].num=0
stud[0].age=0
strcpy(stud[0].addr,"")
strcpy(stud[1].name,"")
stud[1].num=0
stud[1].age=0
strcpy(stud[1].addr,"")
// 打开,读入
fp=fopen("text.txt","rb")
for(i=0i<SIZEi++)
{
fread(&stud[i],sizeof(struct student_type),1,fp)
// 打印 3 项
printf("%s %4d %s\n",stud[i].name, stud[i].age,stud[i].addr)
}
fclose(fp)
}
fopen和fwrite不会改变文件的编码类型,这两个函数是二进制安全的,也就是写进去的数据库在二进制级别是原样保存的,你自己写入数据的时侯要注意字符的编码,必要时侯使用iconv进行转换。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)