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; }