C结构体数组的应用

简介: #include //定义结构体存储学生成绩信息 struct address_list{ char name[10]; char adr[20]; char tel[15]; } info[100]; void save(char *name...
#include <stdio.h>


//定义结构体存储学生成绩信息
struct address_list{
    char name[10];
    char adr[20];
    char tel[15];
} info[100];

void save(char *name, int n){
    FILE *fp;
    int i;
    fp = fopen(name, "wb");
    if(fp == NULL){
        printf("cannot open file %s\n", name);
        exit(0);
    }
    for(i=0; i<n; i++){
        if(fwrite(&info[i], sizeof(struct address_list),1,fp)!=1){
            printf("file write error\n");
        }
    }
    fclose(fp);
}


void show(char *name, int n){
    FILE *fp;
    int i;
    fp = fopen(name, "wb");
    if(fp == NULL){
        printf("cannot open file %s\n", name);
        exit(0);
    }
    for(i=0; i<n; i++){
        fread(&info[i], sizeof(struct address_list),1,fp);
        printf("%15s%20s%20s\n", info[i].name, info[i].adr, info[i].tel);
    }
    fclose(fp);
}

int main(){
    int i, n;    
    char filename[50] ;
    printf("how many ?\n");
    scanf("%d", &n);    //输入学生数
    printf("please input filename:\n");
    scanf("%s", filename);    //输入文件路径和名称
    printf("please input name, address, telephone:\n");
    for(i=0; i<n; i++){
        printf("NO%d", i+1);
        scanf("%s%s%s", info[i].name, info[i].adr, info[i].tel);
        save(filename, n);    //调用save 
    } 
    show(filename, n);    //调用show 
    return 0;
}

 

目录
相关文章
|
1月前
|
存储
定义结构体数组
定义结构体数组
10 0
|
1月前
|
C语言
指向结构体数组的指针
指向结构体数组的指针
13 2
|
2月前
|
存储 C语言
指针&结构体题
指针&结构体题
27 2
|
8月前
|
存储 编译器 C语言
数组与结构体
数组与结构体
|
5月前
指针&结构体题上
指针&结构体题
28 0
|
5月前
|
存储 C语言
指针&结构体题下
指针&结构体题
24 1