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概念,虽然对它们 的了解不深,但是学习了基本操作和概念。

posted @ 2019-12-17 17:14  hhs(黄鸿森)  阅读(394)  评论(1编辑  收藏  举报