C语言文件
一、代码展示
#include<stdio.h> #include<stdlib.h> #include<string.h> struct student { char name[20]; int number; int clas; char gender[10]; char score[20]; }; int i; void menu(){ //目录 printf(" ☆★☆★☆★☆★☆★☆★☆★☆ ★\n"); printf(" ★欢迎使用学生成绩信息管理系统 ☆\n"); printf(" ☆ 请选择您所使用的服务: ★\n"); printf(" ★ 查询[1] ☆\n"); printf(" ☆ 添加or修改[2] ★\n"); printf(" ★ 退出[0] ☆\n"); printf(" ☆★☆★☆★☆★☆★☆★☆★☆ ★\n"); } void Txt_Write() //写入txt { system("cls"); int n,j; char name1[20]; char name2[20]; int num,clas; char sex[10]; char score[20]; FILE *fp; struct student stu[500]; printf("请输入所添加的人数:\n"); scanf("%d",&n); j=n-1; if(n>9) { printf("一次输入这么多,你不累我都累了!!!\n"); printf("在秃头之路上“猪突猛进”!!!\n\n"); } for(i=1;i<=n;i++) { printf("请输入\n姓名 学号 班级 性别 线代成绩:\n"); scanf("%s",name1); strcpy(name2,name1); strcat(name1,".txt"); if ((fp = fopen(name1,"w")) == NULL) { printf("查无此人!!!\n"); } fprintf(fp,"姓名 学号 班级 性别 线代成绩\n"); scanf("%d%d%s%s",&num,&clas,sex,score); fprintf(fp,"%-10s%-10d%-10d%-10s%s",name2,num,clas,sex,score); //数据对齐 fclose(fp); fp = fopen(name1,"r"); fscanf(fp,"%*[^\n]"); //略过第一行 fscanf(fp,"%s %d %d %s %s",&stu[i].name,&stu[i].number,&stu[i].clas,&stu[i].gender,&stu[i].score); printf("姓名 学号 班级 性别 线代成绩\n"); printf("%-10s%-10d%-10d%-10s%s\n",stu[i].name,stu[i].number,stu[i].clas,stu[i].gender,stu[i].score); system("pause"); system("cls"); if(j>0) { printf("剩余输入:%d\n\n",j--); } } system("cls"); if(n==0){ printf("好玩吗?GUN呐!!!\n"); system("pause"); system("cls"); return menu(); } else{ printf("数据已更新!!!\n"); system("pause"); system("cls"); return menu(); } } void Txt_Read() //读取txt { system("cls"); char name1[20]; char name2[20]; int num,clas; char sex[10]; char score[20]; FILE *fp; struct student stu[200]; while(1) { printf("请输入所查询姓名(输入*退出查询!):"); scanf("%s",name1); strcpy(name2,name1); if(name2[0]=='*'&&name2[1]!=0){ system("cls"); printf("哪个憨憨名字是这样的!!!\n") ; system("pause"); system("cls"); return menu();//返回目录 } if(name2[0]=='*'&&name2[1]==0){ system("cls"); return menu();//返回目录 } strcat(name1,".txt"); if ((fp = fopen(name1,"r")) == NULL) { system("cls"); printf("查无此人!!!\n"); system("pause"); return Txt_Read(); } fp = fopen(name1,"r"); fscanf(fp,"%*[^\n]"); //略过第一行 fscanf(fp,"%s %d %d %s %s",&stu[i].name,&stu[i].number,&stu[i].clas,&stu[i].gender,&stu[i].score); printf("姓名 学号 班级 性别 线代成绩\n"); printf("%-10s%-10d%-10d%-10s%s\n",stu[i].name,stu[i].number,stu[i].clas,stu[i].gender,stu[i].score); fclose(fp); system("pause"); system("cls"); } exit(0); } int main() { system("color FD"); //界面颜色 int n; menu(); while(1) { scanf("%d", &n); switch(n) { case 1: Txt_Read(); break; case 2: Txt_Write(); break; case 0: system("cls"); printf("告辞!!!\n"); return 0; default: printf("输入错误!!!\n"); break; } } return 0; }
二、运行展示
添加or修改功能,输入相同名字可进行修改。
查询功能,输入*可返回目录。
退出。
创建的txt文件。
对应的信息。
三、system()
system("pause")
使程序在此时暂停,使程序有阶段的进行。
system("CLS")
可以实现清屏操作。
system("color ab");
其中color后面的a是背景色,b是字体色。
0=黑色 8=灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
四、总结
1.了解文件基本操作相关函数的使用
2.学会了运用system()来美化运行界面(这个有点好玩!)
3.初步了解了缓冲区以及EOF概念