题目:
有如下结构体及变量定义:
struct student{ int num; char name[20]; char sex; int age;} ;
struct student str[3]={ {10101,“LiLin”,‘M’,18},{10102,“Zhan Fun”,‘M’,19},{10104,“Wang Min”,‘F’,20}},s;
将文件内容写入磁盘文件“std.txt”中并存盘,再次打开文件,将最后一个数组元素的信息读入到变量s中,输出s的每个成员信息,每条信息输出后换行。
分析:
(1)建立一个指向std.txt的文件指针fp,
(2)循环用fwrite将文件内容写入
(3)用fread将文件内容读到s中
代码示例
#include <stdio.h>
#include <stdlib.h>
struct student
{
int num;
char name[20];
char sex;
int age;
};
int main()
{
struct student str[3] = {
{
10101, "LiLin", 'M', 18},
{
10102, "Zhang Fun", 'M', 19},
{
10104, "Wang Min", 'F', 20}
}, s;
/*
* 将文件内容写入磁盘文件“std.txt”中并存盘
*/
FILE *fp;
char* filename = "std.txt";
fp=fopen(filename,"w+");
int i;
for(i=0;i<3;i++)
{
fwrite(&str[i], sizeof(struct student), 1, fp);
}
fclose(fp);
/*
* 再次打开文件,将最后一个数组元素的信息读入到变量s中
*/
fp = fopen(filename,"r");
fread(&s, sizeof(struct student), 1, fp);
printf("%d\n%s\n%c\n%d\n", s.num, s.name, s.sex, s.age); //输出s的每个成员信息
fclose(fp);
return 0;
}
有疑问欢迎在评论区留言,有时间将为您做出回复