- 论坛徽章:
- 0
|
请教:如何对结构性数据用fread和fwrite进行读写操作
- #include <stdio.h>;
- #include <string.h>;
- #define SIZE 4
- struct student
- {
- char name[10];
- int num, age;
- char addr[15];
- }stdu[SIZE];
- void save_info()
- {
- FILE *fp;
- int i;
- if((fp = fopen("stu_list" , "a+")) == NULL)
- {
- perror("fopen");
- exit(1);
- }
- for(i = 0; i < SIZE; i++)
- {
- fwrite(&stdu[i],sizeof(struct student),1,fp);
-
- }
- fclose(fp);
-
- }
- int main(int argc, char ** argv)
- {
- int i;
- FILE *fp;
- fp = fopen("stu_list","r");
- for(i = 0; i < SIZE; i++)
- {
- scanf("%s%d%d%s",stdu[i].name,&stdu[i].num,&stdu[i].age,stdu[i].addr);
- stdu[i].name[strlen(stdu[i].name)] = 0;
- stdu[i].addr[strlen(stdu[i].addr)] = 0;
- }
- save_info();
- fread(&stdu,sizeof(struct student),SIZE,fp);
- for(i=0; i < SIZE; i++)
- {
- printf("%s\t%d\t%d\t%s\n",stdu[i].name,stdu[i].num,stdu[i].age,stdu[i].addr);
- }
- return 0;
- }
复制代码 |
|