C语言的存盘问题visualstudio

帮我看一下这个怎么实现存盘功能,不知道第370行那个是不是用来存盘的

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
#include<string.h>
struct cloth {
    char ID[20];
    char Name[10];
    float Num1;
    float Num2;
    float Mark3;
    float Mark4;
    float All;
    float Average;
}cloths[1000];
int num = 0;
void Copy(struct cloth* arr, int i, int j)
{
    strcpy(arr[i].ID, arr[j].ID);
    strcpy(arr[i].Name, arr[j].Name);
    arr[i].Num1 = arr[j].Num1;
    arr[i].Num2 = arr[j].Num2;
    arr[i].Mark3 = arr[j].Mark3;
    arr[i].Mark4 = arr[j].Mark4;
    arr[i].All = arr[j].All;
    arr[i].Average = arr[j].Average;
}
int cloth_SearchByName(char name[])//通过名称来检索
{
    int i;
    for (i = 0; i < num; i++)
    {
        if (strcmp(cloths[i].Name, name) == 0)  //通过strcmp函数来对比名称,找到返回在数组的位置 
        {
            return i;
        }
    }
    return -1;    //未找到返回 
}
int cloth_SearchByIndex(char id[])//通过编号来检索
{
    int i;
    for (i = 0; i < num; i++)
    {
        if (strcmp(cloths[i].ID, id) == 0)  //通过strcmp函数来对比id,找到返回位置 
        {
            return i;
        }
    }
    return -1;   //未找到返回  
}
void cloth_DisplaySingle(int index)//输出表头
{
    printf("%10s%10s%8s%8s%8s%10s\n", "编号", "名称", "颜色", "腰围", "衣长", "肩宽", "袖长", "平均值");
    printf("-------------------------------------------------------------\n");
    printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n", cloths[index].ID, cloths[index].Name,
        cloths[index].Num1, cloths[index].Num2, cloths[index].Mark3, cloths[index].Mark4, cloths[index].All, cloths[index].Average);
}
void inputt()
{
    while (1)
    {
        printf("请输入编号:");
        scanf("%s", &cloths[num].ID);
        getchar();
        printf("请输入名称:");
        scanf("%s", &cloths[num].Name);
        getchar();
        printf("请输入颜色:");
        scanf("%f", &cloths[num].Num1);
        getchar();
        printf("请输入腰围:");
        scanf("%f", &cloths[num].Num2);
        getchar();
        printf("请输入衣长:");
        scanf("%f", &cloths[num].Mark3);
        getchar();
        printf("请输入肩宽:");
        scanf("%f", &cloths[num].Mark4);//手动输入数据   
        getchar();
        cloths[num].All = cloths[num].Num1 + cloths[num].Num2 + cloths[num].Mark3 + cloths[num].Mark4;    //输完数据后自动计算总数及平均数
        cloths[num].Average = (cloths[num].Num1 + cloths[num].Num2 + cloths[num].Mark3 + cloths[num].Mark4) / 4;
        if (cloth_SearchByIndex(cloths[num].ID) == -1)
        {
            num++;  //移向下一个位置 
        }
        else
        {
            printf("编号重复,输入数据无效 !!!\n");
        }

        printf("是否继续?(y/n)");
        if (getchar() == 'n')
        {
            break;
        }
    }
}
void modify()//修改成绩
{
    while (1)
    {
        char id[20];
        int index;
        printf("请输入要修改的衣服的编号:");
        scanf("%s", &id);
        getchar();
        index = cloth_SearchByIndex(id);  //调用搜查id函数,根据其返回值确定位置 
        if (index == -1)
        {
            printf("衣服不存在!\n");
        }
        else
        {
            printf("你要修改的衣服信息为:\n");
            cloth_DisplaySingle(index);
            printf("-- 请输入新值--\n");
            printf("请输入编号:");
            scanf("%s", &cloths[index].ID);
            getchar();
            printf("请输入名称:");
            scanf("%s", &cloths[index].Name);
            getchar();
            printf("请输入颜色:");
            scanf("%f", &cloths[index].Num1);
            getchar();
            printf("请输入腰围:");
            scanf("%f", &cloths[index].Num2);
            getchar();
            printf("请输入衣长:");
            scanf("%f", &cloths[index].Mark3);
            getchar();
            printf("请输入肩宽:");
            scanf("%f", &cloths[index].Mark4);  //重新录入一套新的数据替代 
            getchar();
            cloths[index].All = cloths[index].Num1 + cloths[index].Num2 + cloths[index].Mark3 + cloths[index].Mark4;
            cloths[index].Average = (cloths[index].Num1 + cloths[index].Num2 + cloths[index].Mark3 + cloths[index].Mark4) / 4;
        }
        printf("是否继续?(y/n)");
        if (getchar() == 'n')
        {
            break;
        }
    }
}
void deletee()//删除信息
{
    int i;
    while (1)
    {
        char id[20];
        int index;
        printf("请输入要删除的衣服的编号:");
        scanf("%s", &id);
        getchar();
        index = cloth_SearchByIndex(id);   //调用搜查id函数,根据其返回值确定位置 
        if (index == -1)
        {
            printf("衣服不存在!\n");
        }
        else
        {
            printf("你要删除的衣服信息为:\n");
            cloth_DisplaySingle(index);
            printf("是否真的要删除?(y/n)");
            if (getchar() == 'y')
            {
                for (i = index; i < num - 1; i++)
                {
                    Copy(cloths, i, i + 1);
                      //把后边的对象都向前移动
                }
                num--;
            }
            getchar();
        }
        printf("是否继续?(y/n)");
        if (getchar() == 'n')
        {
            break;
        }
    }
}
void display()//打印已录入的信息
{
    int a;
    printf("%10s%10s%8s%8s%8s%8s%10s%10s\n", "编号", "名称", "颜色", "腰围", "衣长", "肩宽", "总数", "平均值");
    printf("-------------------------------------------------------------\n");
    for (a = 0; a < num; a++)
    {
        printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n", cloths[a].ID, cloths[a].Name,
            cloths[a].Num1, cloths[a].Num2, cloths[a].Mark3, cloths[a].Mark4, cloths[a].All, cloths[a].Average);
    }
}
void insert()//指定位置插入信息
{
    int a, b, c;
    printf("请输入你要插入的位置");
    scanf("%d", &a);
    if (a > num) {
        printf("输入的位置有误,请重新输入,当前共%d条数据\n", num);
        scanf("%d", &a);
    }

    b = num - 1;
    for (; b >= a - 1; b--)
    { 
        Copy(cloths, b + 1, b); //根据其输入的位置,将其及以后的数据向后移动一个位置 

    }
    num++;
    printf("请输入编号:");
    scanf("%s", &cloths[a - 1].ID);
    getchar();
    printf("请输入名称:");
    scanf("%s", &cloths[a - 1].Name);
    getchar();
    printf("请输入颜色:");
    scanf("%f", &cloths[a - 1].Num1);
    getchar();
    printf("请输入腰围:");
    scanf("%f", &cloths[a - 1].Num2);
    getchar();
    printf("请输入衣长:");
    scanf("%f", &cloths[a - 1].Mark3);
    getchar();
    printf("请输入肩宽:");
    scanf("%f", &cloths[a - 1].Mark4);  //输入新数据 
    getchar();
    cloths[a - 1].All = cloths[a - 1].Num1 + cloths[a - 1].Num2 + cloths[a - 1].Mark3 + cloths[a - 1].Mark4;
    cloths[a - 1].Average = (cloths[a - 1].Num1 + cloths[a - 1].Num2 + cloths[a - 1].Mark3 + cloths[a - 1].Mark4) / 4;

}
void search()//查询衣服信息
{
    while (1)
    {
        char name[20];
        int index;
        printf("请输入要查询的衣服的名称:");
        scanf("%s", &name);
        getchar();
        index = cloth_SearchByName(name);   //调用搜查name函数,根据其返回值确定位置 
        if (index == -1)
        {
            printf("不存在!\n");
        }
        else
        {
            printf("你要查询的衣服信息为:\n");
            cloth_DisplaySingle(index);
        }
        printf("是否继续?(y/n)");
        if (getchar() == 'n')
        {
            break;
        }
    }
}
void sort()//根据平均值排序
{
    int i, j;
    //struct cloths tmp;
    for (i = 0; i < num; i++)
    {
        cloths[i].Average = (cloths[i].Num1 + cloths[i].Num2 + cloths[i].Mark3 + cloths[i].Mark4) / 4;
    }
    for (i = 0; i < num; i++)
    {
        for (j = 1; j < num - i; j++)
        {
            if (cloths[j - 1].Average < cloths[j].Average)
            {

                Copy(cloths, num, j - 1);
                Copy(cloths, j - 1, j);
                Copy(cloths, j, num);
              
            }
        }
    }
    int a;
    printf("%10s%10s%8s%8s%8s%10s\n", "编号", "名称", "颜色", "腰围", "衣长", "肩宽", "总数", "平均值");
    printf("-------------------------------------------------------------\n");
    for (a = 0; a < num; a++)
    {
        printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n", cloths[a].ID, cloths[a].Name,
            cloths[a].Num1, cloths[a].Num2, cloths[a].Mark3, cloths[a].Mark4, cloths[a].All, cloths[a].Average);
    }
}


void SearchLow()//搜索低于标准的并输出 
{
    int a;
    printf("颜色不匹配的有%10s%10s%8s\n", "编号", "名称", "颜色");
    for (a = 0; a < num; a++)
    {
        if (cloths[a].Num1 < 50)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Num1);    //从头搜索到尾,若小于50就输出 
    }

    printf("腰围不匹配的有%10s%10s%8s\n", "编号", "名称", "腰围");
    for (a = 0; a < num; a++)
    {
        if (cloths[a].Num2 < 50)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Num2);
    }

    printf("衣长不及格的有%10s%10s%8s\n", "编号", "名称", "衣长");
    for (a = 0; a < num; a++)
    {
        if (cloths[a].Mark3 < 50)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Mark3);
    }

    printf("肩宽不及格的有%10s%10s%8s\n", "编号", "名称", "肩宽");
    for (a = 0; a < num; a++)
    {
        if (cloths[a].Mark4 < 50)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Mark4);
    }
    system("pause");
}

void SearchHigh()//搜索最高者输出 
{
    int a;
    int max;
    printf("腰围最高为%10s%10s%8s\n", "编号", "名称", "腰围");
    max = cloths[0].Num2;
    for (a = 1; a < num; a++)
    {
        if (cloths[a].Num2 > max)
            max = cloths[a].Num2;
    }
    for (a = 0; a < num; a++)
    {
        if (max == cloths[a].Num2)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Num2);
    }

    printf("衣长最高为%10s%10s%8s\n", "编号", "名称", "衣长");
    max = cloths[0].Mark3;
    for (a = 1; a < num; a++)
    {
        if (cloths[a].Mark3 > max)
            max = cloths[a].Mark3;
    }
    for (a = 0; a < num; a++)
    {
        if (max == cloths[a].Mark3)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Mark3);
    }

    printf("肩宽最高为%10s%10s%8s\n", "编号", "名称", "肩宽");
    max = cloths[0].Mark4;
    for (a = 1; a < num; a++)
    {
        if (cloths[a].Mark4 > max)
            max = cloths[a].Mark4;
    }
    for (a = 0; a < num; a++)
    {
        if (max == cloths[a].Mark4)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Mark4);
    }
    system("pause");
}
void Save()
{
    FILE* fp = fopen("temp.txt", "w+");
    fprintf(fp, "%d\n", num);
    for (int i = 0; i < num; i++)
    {
        fprintf(fp, "%s %s %f %f %f %f %f %f\n", cloths[i].ID, cloths[i].Name, cloths[i].Num1, cloths[i].Num2, cloths[i].Mark3, cloths[i].Mark4, cloths[i].All, cloths[i].Average);
    }
    fclose(fp);
}
void Load()
{
    FILE* fp = fopen("temp.txt", "r");
    fscanf(fp, "%d", &num);
    for (int i = 0; i < num; i++)
    {

        fscanf(fp, "%s %s %f %f %f %f %f %f\n", cloths[i].ID, cloths[i].Name, &cloths[i].Num1, &cloths[i].Num2, &cloths[i].Mark3, &cloths[i].Mark4, &cloths[i].All, &cloths[i].Average);
    }
    fclose(fp);
}
/*主程序*/
int main() {
    int i;
    while (1) {
        printf("\t\t\t\t\t-------- 衣服指标录入系统-------\n\n\n\n");     
        printf("\t\t\t\t\t1. 增加衣服记录\n\n");
        printf("\t\t\t\t\t2. 修改衣服记录\n\n");
        printf("\t\t\t\t\t3. 删除衣服记录\n\n");
        printf("\t\t\t\t\t4. 插入衣服记录\n\n");
        printf("\t\t\t\t\t5. 显示衣服所有记录\n\n");
        printf("\t\t\t\t\t6. 查询衣服记录\n\n");
        printf("\t\t\t\t\t7. 按平均值排序\n\n");
        printf("\t\t\t\t\t8. 输出尺寸不匹配衣服\n\n");
        printf("\t\t\t\t\t9. 输出各尺寸最高值\n\n");
        printf("\t\t\t\t\t0. 退出\n\n\n");
        printf("请选择(0-9):");
        scanf("%d", &i);
        switch (i) {
        case 1:inputt(); break;
        case 2:modify(); break;
        case 3:deletee(); break;
        case 4:insert(); break;
        case 5:display(); break;
        case 6:search(); break;
        case 7:sort(); break;
        case 8:SearchLow(); break;
        case 9:SearchHigh(); break;
        case 0:exit(0);
        default:;
        }
        Save();
    }
    return 0;
}

370行save是用来存盘的,380行load是用来读取的,参考如下代码:


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
#include<string.h>
struct cloth {
    char ID[20];
    char Name[10];
    float Num1;
    float Num2;
    float Mark3;
    float Mark4;
    float All;
    float Average;
}cloths[1000];
int num = 0;
void Copy(struct cloth* arr, int i, int j)
{
    strcpy(arr[i].ID, arr[j].ID);
    strcpy(arr[i].Name, arr[j].Name);
    arr[i].Num1 = arr[j].Num1;
    arr[i].Num2 = arr[j].Num2;
    arr[i].Mark3 = arr[j].Mark3;
    arr[i].Mark4 = arr[j].Mark4;
    arr[i].All = arr[j].All;
    arr[i].Average = arr[j].Average;
}
int cloth_SearchByName(char name[])//通过名称来检索
{
    int i;
    for (i = 0; i < num; i++)
    {
        if (strcmp(cloths[i].Name, name) == 0)  //通过strcmp函数来对比名称,找到返回在数组的位置 
        {
            return i;
        }
    }
    return -1;    //未找到返回 
}
int cloth_SearchByIndex(char id[])//通过编号来检索
{
    int i;
    for (i = 0; i < num; i++)
    {
        if (strcmp(cloths[i].ID, id) == 0)  //通过strcmp函数来对比id,找到返回位置 
        {
            return i;
        }
    }
    return -1;   //未找到返回  
}
void cloth_DisplaySingle(int index)//输出表头
{
    printf("%10s%10s%8s%8s%8s%10s\n", "编号", "名称", "颜色", "腰围", "衣长", "肩宽", "袖长", "平均值");
    printf("-------------------------------------------------------------\n");
    printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n", cloths[index].ID, cloths[index].Name,
        cloths[index].Num1, cloths[index].Num2, cloths[index].Mark3, cloths[index].Mark4, cloths[index].All, cloths[index].Average);
}
void inputt()
{
    while (1)
    {
        printf("请输入编号:");
        scanf("%s", &cloths[num].ID);
        getchar();
        printf("请输入名称:");
        scanf("%s", &cloths[num].Name);
        getchar();
        printf("请输入颜色:");
        scanf("%f", &cloths[num].Num1);
        getchar();
        printf("请输入腰围:");
        scanf("%f", &cloths[num].Num2);
        getchar();
        printf("请输入衣长:");
        scanf("%f", &cloths[num].Mark3);
        getchar();
        printf("请输入肩宽:");
        scanf("%f", &cloths[num].Mark4);//手动输入数据   
        getchar();
        cloths[num].All = cloths[num].Num1 + cloths[num].Num2 + cloths[num].Mark3 + cloths[num].Mark4;    //输完数据后自动计算总数及平均数
        cloths[num].Average = (cloths[num].Num1 + cloths[num].Num2 + cloths[num].Mark3 + cloths[num].Mark4) / 4;
        if (cloth_SearchByIndex(cloths[num].ID) == -1)
        {
            num++;  //移向下一个位置 
        }
        else
        {
            printf("编号重复,输入数据无效 !!!\n");
        }

        printf("是否继续?(y/n)");
        if (getchar() == 'n')
        {
            break;
        }
    }
}
void modify()//修改成绩
{
    while (1)
    {
        char id[20];
        int index;
        printf("请输入要修改的衣服的编号:");
        scanf("%s", &id);
        getchar();
        index = cloth_SearchByIndex(id);  //调用搜查id函数,根据其返回值确定位置 
        if (index == -1)
        {
            printf("衣服不存在!\n");
        }
        else
        {
            printf("你要修改的衣服信息为:\n");
            cloth_DisplaySingle(index);
            printf("-- 请输入新值--\n");
            printf("请输入编号:");
            scanf("%s", &cloths[index].ID);
            getchar();
            printf("请输入名称:");
            scanf("%s", &cloths[index].Name);
            getchar();
            printf("请输入颜色:");
            scanf("%f", &cloths[index].Num1);
            getchar();
            printf("请输入腰围:");
            scanf("%f", &cloths[index].Num2);
            getchar();
            printf("请输入衣长:");
            scanf("%f", &cloths[index].Mark3);
            getchar();
            printf("请输入肩宽:");
            scanf("%f", &cloths[index].Mark4);  //重新录入一套新的数据替代 
            getchar();
            cloths[index].All = cloths[index].Num1 + cloths[index].Num2 + cloths[index].Mark3 + cloths[index].Mark4;
            cloths[index].Average = (cloths[index].Num1 + cloths[index].Num2 + cloths[index].Mark3 + cloths[index].Mark4) / 4;
        }
        printf("是否继续?(y/n)");
        if (getchar() == 'n')
        {
            break;
        }
    }
}
void deletee()//删除信息
{
    int i;
    while (1)
    {
        char id[20];
        int index;
        printf("请输入要删除的衣服的编号:");
        scanf("%s", &id);
        getchar();
        index = cloth_SearchByIndex(id);   //调用搜查id函数,根据其返回值确定位置 
        if (index == -1)
        {
            printf("衣服不存在!\n");
        }
        else
        {
            printf("你要删除的衣服信息为:\n");
            cloth_DisplaySingle(index);
            printf("是否真的要删除?(y/n)");
            if (getchar() == 'y')
            {
                for (i = index; i < num - 1; i++)
                {
                    Copy(cloths, i, i + 1);
                    //把后边的对象都向前移动
                }
                num--;
            }
            getchar();
        }
        printf("是否继续?(y/n)");
        if (getchar() == 'n')
        {
            break;
        }
    }
}
void display()//打印已录入的信息
{
    int a;
    printf("%10s%10s%8s%8s%8s%8s%10s%10s\n", "编号", "名称", "颜色", "腰围", "衣长", "肩宽", "总数", "平均值");
    printf("-------------------------------------------------------------\n");
    for (a = 0; a < num; a++)
    {
        printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n", cloths[a].ID, cloths[a].Name,
            cloths[a].Num1, cloths[a].Num2, cloths[a].Mark3, cloths[a].Mark4, cloths[a].All, cloths[a].Average);
    }
}
void insert()//指定位置插入信息
{
    int a, b, c;
    printf("请输入你要插入的位置");
    scanf("%d", &a);
    if (a > num) {
        printf("输入的位置有误,请重新输入,当前共%d条数据\n", num);
        scanf("%d", &a);
    }

    b = num - 1;
    for (; b >= a - 1; b--)
    {
        Copy(cloths, b + 1, b); //根据其输入的位置,将其及以后的数据向后移动一个位置 

    }
    num++;
    printf("请输入编号:");
    scanf("%s", &cloths[a - 1].ID);
    getchar();
    printf("请输入名称:");
    scanf("%s", &cloths[a - 1].Name);
    getchar();
    printf("请输入颜色:");
    scanf("%f", &cloths[a - 1].Num1);
    getchar();
    printf("请输入腰围:");
    scanf("%f", &cloths[a - 1].Num2);
    getchar();
    printf("请输入衣长:");
    scanf("%f", &cloths[a - 1].Mark3);
    getchar();
    printf("请输入肩宽:");
    scanf("%f", &cloths[a - 1].Mark4);  //输入新数据 
    getchar();
    cloths[a - 1].All = cloths[a - 1].Num1 + cloths[a - 1].Num2 + cloths[a - 1].Mark3 + cloths[a - 1].Mark4;
    cloths[a - 1].Average = (cloths[a - 1].Num1 + cloths[a - 1].Num2 + cloths[a - 1].Mark3 + cloths[a - 1].Mark4) / 4;

}
void search()//查询衣服信息
{
    while (1)
    {
        char name[20];
        int index;
        printf("请输入要查询的衣服的名称:");
        scanf("%s", &name);
        getchar();
        index = cloth_SearchByName(name);   //调用搜查name函数,根据其返回值确定位置 
        if (index == -1)
        {
            printf("不存在!\n");
        }
        else
        {
            printf("你要查询的衣服信息为:\n");
            cloth_DisplaySingle(index);
        }
        printf("是否继续?(y/n)");
        if (getchar() == 'n')
        {
            break;
        }
    }
}
void sort()//根据平均值排序
{
    int i, j;
    //struct cloths tmp;
    for (i = 0; i < num; i++)
    {
        cloths[i].Average = (cloths[i].Num1 + cloths[i].Num2 + cloths[i].Mark3 + cloths[i].Mark4) / 4;
    }
    for (i = 0; i < num; i++)
    {
        for (j = 1; j < num - i; j++)
        {
            if (cloths[j - 1].Average < cloths[j].Average)
            {

                Copy(cloths, num, j - 1);
                Copy(cloths, j - 1, j);
                Copy(cloths, j, num);

            }
        }
    }
    int a;
    printf("%10s%10s%8s%8s%8s%10s\n", "编号", "名称", "颜色", "腰围", "衣长", "肩宽", "总数", "平均值");
    printf("-------------------------------------------------------------\n");
    for (a = 0; a < num; a++)
    {
        printf("%10s%10s%8.2f%8.2f%8.2f%8.2f%10.2f%10.2f\n", cloths[a].ID, cloths[a].Name,
            cloths[a].Num1, cloths[a].Num2, cloths[a].Mark3, cloths[a].Mark4, cloths[a].All, cloths[a].Average);
    }
}


void SearchLow()//搜索低于标准的并输出 
{
    int a;
    printf("颜色不匹配的有%10s%10s%8s\n", "编号", "名称", "颜色");
    for (a = 0; a < num; a++)
    {
        if (cloths[a].Num1 < 50)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Num1);    //从头搜索到尾,若小于50就输出 
    }

    printf("腰围不匹配的有%10s%10s%8s\n", "编号", "名称", "腰围");
    for (a = 0; a < num; a++)
    {
        if (cloths[a].Num2 < 50)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Num2);
    }

    printf("衣长不及格的有%10s%10s%8s\n", "编号", "名称", "衣长");
    for (a = 0; a < num; a++)
    {
        if (cloths[a].Mark3 < 50)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Mark3);
    }

    printf("肩宽不及格的有%10s%10s%8s\n", "编号", "名称", "肩宽");
    for (a = 0; a < num; a++)
    {
        if (cloths[a].Mark4 < 50)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Mark4);
    }
    system("pause");
}

void SearchHigh()//搜索最高者输出 
{
    int a;
    int max;
    printf("腰围最高为%10s%10s%8s\n", "编号", "名称", "腰围");
    max = cloths[0].Num2;
    for (a = 1; a < num; a++)
    {
        if (cloths[a].Num2 > max)
            max = cloths[a].Num2;
    }
    for (a = 0; a < num; a++)
    {
        if (max == cloths[a].Num2)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Num2);
    }

    printf("衣长最高为%10s%10s%8s\n", "编号", "名称", "衣长");
    max = cloths[0].Mark3;
    for (a = 1; a < num; a++)
    {
        if (cloths[a].Mark3 > max)
            max = cloths[a].Mark3;
    }
    for (a = 0; a < num; a++)
    {
        if (max == cloths[a].Mark3)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Mark3);
    }

    printf("肩宽最高为%10s%10s%8s\n", "编号", "名称", "肩宽");
    max = cloths[0].Mark4;
    for (a = 1; a < num; a++)
    {
        if (cloths[a].Mark4 > max)
            max = cloths[a].Mark4;
    }
    for (a = 0; a < num; a++)
    {
        if (max == cloths[a].Mark4)
            printf("\t\t%10s%10s%8.2f\n", cloths[a].Name, cloths[a].ID, cloths[a].Mark4);
    }
    system("pause");
}
void Save()
{
    FILE* fp = fopen("temp.txt", "w+");
    fprintf(fp, "%d\n", num);
    for (int i = 0; i < num; i++)
    {
        fprintf(fp, "%s %s %f %f %f %f %f %f\n", cloths[i].ID, cloths[i].Name, cloths[i].Num1, cloths[i].Num2, cloths[i].Mark3, cloths[i].Mark4, cloths[i].All, cloths[i].Average);
    }
    fclose(fp);
}
void Load()
{
    FILE* fp = fopen("temp.txt", "r");
    if (!fp)
        return;

    fscanf(fp, "%d", &num);
    for (int i = 0; i < num; i++)
    {

        fscanf(fp, "%s %s %f %f %f %f %f %f\n", cloths[i].ID, cloths[i].Name, &cloths[i].Num1, &cloths[i].Num2, &cloths[i].Mark3, &cloths[i].Mark4, &cloths[i].All, &cloths[i].Average);
    }
    fclose(fp);
}
/*主程序*/
int main() {
    int i;
    Load();
    while (1) {
        printf("\t\t\t\t\t-------- 衣服指标录入系统-------\n\n\n\n");
        printf("\t\t\t\t\t1. 增加衣服记录\n\n");
        printf("\t\t\t\t\t2. 修改衣服记录\n\n");
        printf("\t\t\t\t\t3. 删除衣服记录\n\n");
        printf("\t\t\t\t\t4. 插入衣服记录\n\n");
        printf("\t\t\t\t\t5. 显示衣服所有记录\n\n");
        printf("\t\t\t\t\t6. 查询衣服记录\n\n");
        printf("\t\t\t\t\t7. 按平均值排序\n\n");
        printf("\t\t\t\t\t8. 输出尺寸不匹配衣服\n\n");
        printf("\t\t\t\t\t9. 输出各尺寸最高值\n\n");
        printf("\t\t\t\t\t0. 退出\n\n\n");
        printf("请选择(0-9):");
        scanf("%d", &i);
        switch (i) {
        case 1:inputt(); break;
        case 2:modify(); break;
        case 3:deletee(); break;
        case 4:insert(); break;
        case 5:display(); break;
        case 6:search(); break;
        case 7:sort(); break;
        case 8:SearchLow(); break;
        case 9:SearchHigh(); break;
        case 0:exit(0);
        default:;
        }
        Save();
    }
    return 0;
}


save,load这两个函数你已经实现了,生成的文件就是在代码文件同目录的temp.txt文件,,你首先要在我图中的目录建一个temp.txt文件,再编译运行代码。

img

是的 370行save是用来存硬盘

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7806560
  • 你也可以参考下这篇文章:【C 语言基础】VisualStudio 调试小技巧
  • 除此之外, 这篇博客: 如何在VisualStudio工程中编译汇编文件中的 步骤 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 例如,下图有一个汇编文件,需要NASM编译器:

    右击对应汇编文件,安装下图配置自定义的编译设置即可。

    注意:为了保证编译通过,还需要把NASM加入到系统环境变量path里才可以。

  • 您还可以看一下 王小科老师的零基础学C#编程—C#从小白到大咖课程中的 安装VisualStudio2017必备条件小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    由于参考资料并没有涉及C语言程序存盘的相关内容,我需要知道您的存盘方式,例如是文本文件还是二进制文件。一般来说,存盘的方法有以下几个步骤:

    1. 打开文件 您需要使用fopen函数打开一个文件,该函数需要两个参数:文件名和打开方式。例如,如果您要打开一个名为myfile.txt的文本文件,可以使用以下代码:
    FILE *fp;
    fp = fopen("myfile.txt", "w"); // 打开文件,w表示写入模式,如果文件不存在则创建新文件
    if (fp == NULL) {
        printf("打开文件失败");
        return 1;
    }
    
    1. 写入数据 一旦打开了文件,您可以使用fprintf函数将数据写入文件中。例如,如果您要将整数a和字符串b保存到文件中,可以使用以下代码:
    int a = 123;
    char b[] = "hello world";
    fprintf(fp, "%d %s", a, b); // 将整数和字符串写入文件中
    
    1. 关闭文件 完成写入后,您需要使用fclose函数关闭文件,这样才能确保文件中的数据被正确保存。例如:
    fclose(fp); // 关闭文件
    

    如果您的存盘方式是二进制文件,可以使用fwrite函数和fread函数来完成文件的读写操作。具体用法可以参考以下代码:

    // 写入数据
    int a = 123;
    char b[] = "hello world";
    fwrite(&a, sizeof(int), 1, fp); // 将整数写入文件中
    fwrite(b, sizeof(char), strlen(b), fp); // 将字符串写入文件中
    
    // 读取数据
    int a;
    char b[20];
    fread(&a, sizeof(int), 1, fp); // 从文件中读取整数
    fread(b, sizeof(char), strlen(b), fp); // 从文件中读取字符串
    

    请注意,您需要确保读取和写入的数据类型和长度都是正确的,否则可能会导致程序崩溃或数据错误。另外,您需要在读取文件之前检查文件是否存在,如果文件不存在可能会导致程序崩溃。