#include<string.h>
#include<stdio.h>
#include<stdlib.h>
/***********************************
功能:从键盘读取学生的 名字、学号、年龄、地址,保存到指定打文件中
函数:fopen(),fread(),fwrite()
结构:定义一个学生结构体保存每个学生的信息,从键盘读取、保存、打印出来
***********************************/
#define SIZE 2
void input();
void save();
void print();
struct student
{
char name[10];
int number;
int age;
char addr[10];
}stu[SIZE];
int main()
{
memset(&stu[1],0,sizeof(struct student));
memset(&stu[0],0,sizeof(struct student));
input();
save();
print();
return 0;
}
void input()
{
int i=0;
while(i<SIZE){
printf("please input the name number age addr of a student \n");
scanf("%s%d%d%s",stu[i].name,&stu[i].number,&stu[i].age,stu[i].addr);
// printf("%s %d %d %s\n",stu[i].name,stu[i].number,stu[i].age,stu[i].addr);
i++;
}
}
void save()
{
FILE *fp;
int i=0;
if((fp=fopen("student.txt","w"))==NULL){
printf("the operate of the file falie\n");
exit(0);
}
while(i<SIZE){
fwrite(&stu[i],sizeof(struct student),1,fp);
i++;
}
fclose(fp);
}
void print()
{
FILE *fp;
int i=0;
char ch[sizeof(struct student)];
if((fp=fopen("student.txt","r"))==NULL){
printf("the operate of print falie\n");
exit(0);
}
while(i<SIZE){
fread(&stu[i],sizeof(struct student),1,fp);
printf("%s %d %d %s\n",stu[i].name,stu[i].number,stu[i].age,stu[i].addr);
i++;
}
fclose(fp);
}
此时打开存放信息的student.txt 文件并不是以以正常文本的形式存放,所以在存储从键盘输入的信息时,用函数fprintf() 信息的内容会更加清晰