c语言文件

一、任务:

任务一:

你现在拥有一个数组,数组中储存着总共10个人的姓名字符串
你需要为每个人创建一个txt文件,以他们的名字命名。

 

#include<stdio.h>
#include<stdlib.h>
struct stu {
    char number[100];
    char name[10];
    char gender[10];
    char Class[10];
    char grade[10];
};

int main() {
    struct stu a[100];
    FILE* fp;
    char name[10][20] = { "茅志雄","朱朱","蛋蛋","旭旭","岳岳","坑比","煦煦","北极熊","雷雯雯","TT" };
    int i;
    for (i = 0; i < 10; i++) {
        sprintf(name[i], "%s.txt", name[i]);
}
return0;
}

任务二:

在任务一的基础上,这次不仅仅要创建txt文件,还需要往文件中写入
每个人的学号,性别,班级,线代成绩

 

#include<stdio.h>
#include<stdlib.h>
struct stu {
    char number[100];
    char name[10];
    char gender[10];
    char Class[10];
    char grade[10];
};

int main() {
    struct stu a[100];
    FILE* fp;
    char name[10][20] = { "茅志雄","朱朱","蛋蛋","旭旭","岳岳","坑比","煦煦","北极熊","雷雯雯","TT" };
    int i;
    for (i = 0; i < 10; i++) {
        sprintf(name[i], "%s.txt", name[i]);
        if ((fp = fopen(name[i], "w+")) == NULL)
        {
            printf("File open error!\n");
            exit(0);
        }
        scanf("%s %s %s %s", a[i].number, a[i].gender, a[i].Class, a[i].grade);
        fprintf(fp, "%s %s %s %s", a[i].number, a[i].gender, a[i].Class, a[i].grade);
    }
    if (fclose(fp))
    {
        printf("can't close the file");
        exit(0);
    }



    return 0;
}

任务三:

在任务二生成的文件中,将每个人的信息再重新读取出来,放入数组中。
[要求使用结构体数组,结构体需要包含姓名,学号,性别,班级,线代成绩5个属性]

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct stu {
char number[100];
char name[10];
char gender[10];
char Class[10];
char grade[10];
};

int main() {
struct stu a[100];
FILE* fp;
char name[10][20] = { "茅志雄","朱朱","蛋蛋","旭旭","岳岳","坑比","煦煦","北极熊","雷雯雯","TT" };
char name1[10][20] = { "茅志雄","朱朱","蛋蛋","旭旭","岳岳","坑比","煦煦","北极熊","雷雯雯","TT" };//经过循环name[i]内容会加上.txt,所以定义name1;
int i;
for (i = 0; i < 10; i++) {
sprintf(name[i], "%s.txt", name[i]);
}
for (i = 0; i < 10; i++) {
if ((fp = fopen(name[i], "r")) == NULL) {
printf("File open error");
exit(0);
}
while (!feof(fp)) {
fscanf(fp, "%s %s %s %s", a[i].number, a[i].gender, a[i].Class, a[i].grade);
}
strcpy(a[i].name, name1[i]);
printf("%s\t%s\t%s\t%s\t%s\n", a[i].name, a[i].number, a[i].gender, a[i].Class, a[i].grade);

}
fclose(fp);


return 0;
}

任务四:

试着使用一下system("cls"),system("pause")这两个命令,看看这两个
命令能不能对你的程序起到一些美化的作用。
拓展:上网搜索类似的其他函数,使用并解释他们的作用。
【想找几个是几个】

system("cls"):清屏操作。

system("pause"):让操作系统来暂停该程序进程的执行。

 

 

 

 

 

 

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct stu {
    char number[100];
    char name[10];
    char gender[10];
    char Class[10];
    char grade[10];
};

int main() {
    struct stu a[100];
    FILE* fp;
    char name[10][20] = { "茅志雄","朱朱","蛋蛋","旭旭","岳岳","坑比","煦煦","北极熊","雷雯雯","TT" };
    char name1[10][20] = { "茅志雄","朱朱","蛋蛋","旭旭","岳岳","坑比","煦煦","北极熊","雷雯雯","TT" };//经过循环name[i]内容会加上.txt,所以定义name1;
    int i;
    printf("****************************\n");
    printf("******学生成绩查询系统******\n");
    printf("****************************\n");
    printf("输入学号 性别 班级 线代成绩");
    system("pause");
    system("cls");
    for (i = 0; i < 10; i++) {
        sprintf(name[i], "%s.txt", name[i]);
        fp = fopen(name[i], "w+");
        scanf( "%s %s %s %s", a[i].number, a[i].gender, a[i].Class, a[i].grade);
        fscanf(fp, "%s %s %s %s", a[i].number, a[i].gender, a[i].Class, a[i].grade);
        fclose(fp);
    }
    system("pause");
    system("cls");
    for (i = 0; i < 10; i++) {
        if ((fp = fopen(name[i], "r")) == NULL) {
            printf("File open error");
            exit(0);
        }
        while (!feof(fp)) {
            fscanf(fp, "%s %s %s %s", a[i].number, a[i].gender, a[i].Class, a[i].grade);
        }
        strcpy(a[i].name, name1[i]);
        printf("%s %s %s %s %s\n", a[i].name, a[i].number, a[i].gender, a[i].Class, a[i].grade);

    }
    system("pause");
    system("cls");
    fclose(fp);
    printf("谢谢使用,再见");


        return 0;
    }
posted @ 2019-12-21 16:10  茅志雄  阅读(260)  评论(0编辑  收藏  举报