c语言文件
一:代码及截图展示
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 struct student{ //创建一个结构体来存储数据。 5 char num[20]; 6 char sex[3]; 7 char class1[20]; 8 int score; 9 char name[20]; 10 }a[10]; 11 int main(){ 12 char name1[10][256]={ 13 {"c:\\information\\黄鸿森"}, {"c:\\information\\漆靖"}, {"c:\\information\\宋思坡"}, {"c:\\information\\郭其松"}, {"c:\\information\\洪礼强"}, 14 {"c:\\information\\王林涛"}, {"c:\\information\\黄晓龙"}, {"c:\\information\\吴绍杰"}, {"c:\\information\\许慎"}, {"c:\\information\\钟雄飞"}, 15 }; ////建立一个二维数组来存储10个人的姓名字符串以便之后写入文件夹。 16 int i; 17 char content[100]={"姓名 性别 学号 班级 线性代数期末成绩\n"}; 18 for(i=0;i<10;i++){ 19 strcpy(a[i].name,name1[i]); //将10个人的姓名字符串复制到结构体数据内,相当于省略另外输入姓名步骤。 20 strcat(name1[i],".txt"); //设置文件后缀名为“txt”,让其成为文本文档。 21 FILE *fp; //定义一个文件指针。 22 if((fp=fopen(name1[i],"w+"))==NULL){ //使文件指针指向姓名二维数组所在文件,并让其可以读取和写入。 23 printf("文件打开错误!"); 24 exit(0); 25 } 26 fprintf(fp,"%s",content); //将上述姓名、性别等写入文本文档内。 27 if(fclose(fp)){ 28 printf("无法关闭文件!"); 29 exit(0); 30 } 31 } 32 for(i=0;i<10;i++){ //删除每个名字前的 c:\\information\\。 33 strcpy(a[i].name,a[i].name+15); 34 } 35 system("color 7C"); //设置背景色和文字颜色。 36 printf("《《《《《《《《《《《《《《《《《《《《《《《《 学生信息成绩查询系统 》》》》》》》》》》》》》》》》》》》》》》》》\n"); 37 printf("【 个人置做小程序,没什么有用功能,望海涵 】\n"); 38 system("pause"); //暂停屏幕,按任意键继续。 39 i=0; 40 system("cls"); //清楚前面屏幕上显示的文字等。 41 printf(" 请根据姓名依次输入性别、学号、班级、线性代数期末成绩(注意每输入完一个类别后要加上空格分割)\n"); 42 for(i=0;i<10;i++){ 43 printf("%-8s ",a[i].name); 44 scanf("%s %s %s %d",a[i].sex,a[i].num,a[i].class1,&a[i].score); //根据姓名录入每个人的各类数据。 45 FILE *tp; 46 tp=fopen(name1[i],"a+"); //将输入的数据写入文本文档内。 47 fprintf(tp,"%s %s %s %s %d\n",a[i].name,a[i].sex,a[i].num,a[i].class1,a[i].score); //让输入的数据在文本文档内显示。 48 } 49 printf("录入完成!\n"); 50 system("pause"); 51 system("cls"); 52 printf(" 显示录入的所有学生信息\n"); 53 system("pause"); 54 system("cls"); 55 for(i=0;i<10;i++){ 56 FILE *dp; 57 if((dp=fopen(name1[i],"a+"))==NULL){ 58 printf("error!"); 59 } 60 fscanf(dp,"%*[^\n]"); 61 fscanf(dp,"%s%s%s%s%d",a[i].name,a[i].sex,a[i].num,a[i].class1,&a[i].score); 62 if(fclose(dp)){ 63 printf("error!"); 64 } 65 } 66 for(i=0;i<10;i++) 67 printf("%-8s %s %s %s %d\n",a[i].name,a[i].sex,a[i].num,a[i].class1,a[i].score); //将所有学生信息显示在屏幕上。 68 }
二:system()用法
system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。
例如,用 system("color 0A"); 其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:
0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色
三:总结
1:对文件的掌握还不够完善,有了百度的帮助和同学的指导,完成了这项作业。
2:了解了system()的使用,可以更加美化程序。
3:了解缓冲区以及EOF概念,虽然对它们 的了解不深,但是学习了基本操作和概念。