标签:form 各类 fopen 作业 close for 后缀 fscanf 创建
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%d%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 %d %d\n",a[i].name,a[i].sex,a[i].num,&a[i].class1,&a[i].score); //将所有学生信息显示在屏幕上。 68 }
1:对文件的掌握还不够完善,有了百度的帮助和同学的指导,完成了这项作业。
2:了解了system()的使用,可以更加美化程序。
3:了解缓冲区以及EOF概念,虽然对它们 的了解不深,但是学习了基本操作和概念。
标签:form 各类 fopen 作业 close for 后缀 fscanf 创建
原文地址:https://www.cnblogs.com/hhs1/p/12055594.html