任务一:
你现在拥有一个数组,数组中储存着总共10个人的姓名字符串
你需要为每个人创建一个txt文件,以他们的名字命名。
例如: 生成 笨笨.txt文件
代码:
#include#include #include<string.h> int main(void){ FILE * fp; char name[10][20] = { "朱仕岳","张旭","陈烜","茅志雄","杨涛","李龙生","蔡鸿顺","宋林涛","雷雯雯","郝冰冰" }; int i; for (i = 0; i < 10; i++) { sprintf(name[i], "%s.txt", name[i]); fp = fopen(name[i], "w"); if (fp == NULL) { break; } fclose(fp); } return 0; }
运行结果:
任务二:
在任务一的基础上,这次不仅仅要创建txt文件,还需要往文件中写入
每个人的学号,性别,班级,线代成绩
代码:
#include#include #include<string.h> struct people{ char name[10]; char number[30]; char sex[10]; char classs[10]; char score[10]; }apeople[10]; int main(void){ FILE * fp; char name[10][20] = { "朱仕岳","张旭","陈烜","茅志雄","杨涛","李龙生","蔡鸿顺","宋林涛","雷雯雯","郝冰冰" }; int i; printf("请依次输入学号,姓名,班级和线性代数成绩\n"); printf("姓名: 学号: 性别: 班级: 线性代数成绩: \n"); for (i = 0; i < 10; i++) { printf( "%s", name[i]); strcat (name[i],".tet" ); if ((fp = fopen(name[i], "w")) == NULL) { printf("Error!\n"); exit(0); } scanf("%s %s %s %s", apeople[i].number, apeople[i].sex, apeople[i].classs, apeople[i].score); fprintf(fp, "%s %s %s %s", apeople[i].number, apeople[i].sex, apeople[i].classs, apeople[i].score); if (fclose(fp)) { printf("Can't close the file\n"); exit(0); } } return 0; }
运行结果:
任务三:
在任务二生成的文件中,将每个人的信息再重新读取出来,放入数组中。
[要求使用结构体数组,结构体需要包含姓名,学号,性别,班级,线代成绩5个属性]
代码:
#include#include #include<string.h> struct people{ char name[10]; char number[30]; char sex[10]; char classs[10]; char score[10]; }apeople[10]; int main(void){ FILE * fp; char name[10][20] = { "朱仕岳","张旭","陈烜","茅志雄","杨涛","李龙生","蔡鸿顺","宋林涛","雷雯雯","郝冰冰" }; int i; for (i = 0; i < 10; i++) { strcpy(apeople[i].name, name[i]); strcat (name[i],".tet" ); if ((fp = fopen(name[i], "r")) == NULL) { printf("Error!\n"); exit(0); } fscanf(fp,"%s %s %s %s", apeople[i].number, apeople[i].sex, apeople[i].classs, apeople[i].score); fprintf(fp, "%s %s %s %s", apeople[i].number, apeople[i].sex, apeople[i].classs, apeople[i].score); if (fclose(fp)) { printf("Can't close the file\n"); exit(0); } } printf("姓名: 学号: 性别: 班级: 线性代数成绩: \n"); for (i = 0; i < 10; i++) { printf("%-10s%-10s%-10s%-10s %-10s\n", apeople[i].name, apeople[i].number, apeople[i].sex, apeople[i].classs, apeople[i].score); } return 0; }
运行结果:
任务四:
试着使用一下system("cls"),system("pause")这两个命令,看看这两个
命令能不能对你的程序起到一些美化的作用。
拓展:上网搜索类似的其他函数,使用并解释他们的作用。
system("cls");//清屏,使得界面整洁。
system("pause");//暂停,使程序有阶段的进行。
system("data");//显示使用时间,用作提醒。
system("color ab");//改变界面背景色和字体颜色,color后的a为背景色,b为字体颜色。
(0=黑色 1 = 蓝色 2 = 绿色 3 = 浅绿色 4 = 红色 5 = 紫色 6 = 黄色 7 = 白色 8=灰色 9 = 淡蓝色 A = 淡绿色 B = 淡浅绿 C = 淡红色 D = 淡紫色 E = 淡黄色 F = 亮白色)
system(“ shutdown -s -t ”) ;//电脑关机
总结:
1.对fopen,fclose[读取,关闭文件],fscanf,fgets,fgetc...[从文件中读取数据],fprintf,fputs,fputc...[向文件中写入数据]函数的操作使用更加熟练;
2.了解了文件的使用方法和变化;以及对文件的操作有了更深的了解;
3.学习了新的命令:system("cls"),system("pause"),system("data"),system("color ab")并了解了它们的作用和使用方法;