运行代码:
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 int main() 5 { 6 char name[300]; 7 int i; 8 FILE *fp; 9 for(i=0;i<=10;i++) 10 { 11 scanf("%s",name); 12 strcat(name,".txt"); 13 if ((fp = fopen(name,"w")) == NULL) 14 { 15 printf("Failed to open file"); 16 } 17 } 18 exit(0); 19 }
运行结果:
运行代码:
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 int main() 5 { 6 char name[300]; 7 int i; 8 int num,class; 9 char sex[10]; 10 double score; 11 FILE *fp; 12 for(i=0;i<=10;i++) 13 { 14 scanf("%s",name); 15 strcat(name,".txt"); 16 if ((fp = fopen(name,"w")) == NULL){ 17 printf("Failed to open file"); 18 } 19 fprintf(fp,"学号 班级 性别 线代成绩\n"); 20 //for(i=0;i<1;i++) 21 //{ 22 scanf("%d %d %s %lf",&num,&class,sex,&score); 23 fprintf(fp,"%d %d %s %1.1f",num,class,sex,score); 24 fclose(fp); 25 //} 26 } 27 exit(0); 28 }
运行结果:
运行代码:
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 struct student 5 { 6 char name[20]; 7 int number; 8 int class; 9 char gender[10]; 10 char score[20]; 11 }; 12 int main() 13 { 14 char name1[20]; 15 char name2[20]; 16 int i; 17 int num,class; 18 char sex[10]; 19 char score[20]; 20 FILE *fp; 21 struct student stu[500]; 22 for(i=0;i<=10;i++) 23 { 24 printf("请输入姓名,学号,班级,性别,线代成绩:\n"); 25 scanf("%s",name1); 26 strcpy(name2,name1); 27 strcat(name1,".txt"); 28 if ((fp = fopen(name1,"w")) == NULL){ 29 printf("Failed to open file\n"); 30 } 31 fprintf(fp,"姓名 学号 班级 性别 线代成绩\n"); 32 scanf("%d%d%s%s",&num,&class,sex,score); 33 fprintf(fp,"%-17s%-17d%-15d%-19s%-s",name2,num,class,sex,score); //数据对齐 34 fclose(fp); 35 fp = fopen(name1,"r"); 36 fscanf(fp,"%*[^\n]"); //略过第一行 37 fscanf(fp,"%s %d %d %s %s",&stu[i].name,&stu[i].number,&stu[i].class,&stu[i].gender,&stu[i].score); 38 printf("姓名 学号 班级 性别 线代成绩\n"); 39 printf("%-17s%-17d%-15d%-19s%-s\n",stu[i].name,stu[i].number,stu[i].class,stu[i].gender,stu[i].score); 40 } 41 exit(0); 42 }
运行结果:
system("pause"):实现冻结屏幕
system("cls"):实现清屏操作
system("clear"):同上
system("color 0A"):其中color后面的0是背景色代号,A是前景色代号
各颜色代码如下:
0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色
9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色
system("mkdir D:\zero\one") 可以在D盘下建立一个文件夹zero,在zero下面建立一个文件夹one
system("data"): 显示使用者当时使用时间
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 struct student //定义结构体 5 { 6 char name[20]; 7 int number; 8 int class; 9 char gender[10]; 10 char score[20]; 11 }; 12 int i; 13 void menu() 14 { 15 printf(" 欢迎使用本信息服务 \n"); 16 printf(" 请选择您所使用的服务:\n"); 17 printf(" ?查询&修改[1]\n"); 18 printf(" ?添加[2]\n"); 19 printf(" ?退出[0]\n"); 20 } 21 void Txt_Write() //读取txt 22 { 23 system("clear"); 24 int n; 25 char name1[20]; 26 char name2[20]; 27 int num,class; 28 char sex[10]; 29 char score[20]; 30 FILE *fp; 31 struct student stu[500]; 32 printf("请输入所添加的人数:\n"); 33 scanf("%d",&n); 34 printf("请输入姓名,学号,班级,性别,线代成绩:\n"); 35 for(i=1;i<=n;i++) 36 { 37 scanf("%s",name1); 38 strcpy(name2,name1); 39 strcat(name1,".txt"); 40 if ((fp = fopen(name1,"w")) == NULL) 41 { 42 printf("Failed to open file\n"); 43 } 44 fprintf(fp,"姓名 学号 班级 性别 线代成绩\n"); 45 scanf("%d%d%s%s",&num,&class,sex,score); 46 fprintf(fp,"%-17s%-17d%-15d%-19s%-s",name2,num,class,sex,score); //数据对齐 47 fclose(fp); 48 fp = fopen(name1,"r"); 49 fscanf(fp,"%*[^\n]"); //略过第一行 50 fscanf(fp,"%s %d %d %s %s",&stu[i].name,&stu[i].number,&stu[i].class,&stu[i].gender,&stu[i].score); 51 printf("姓名 学号 班级 性别 线代成绩\n"); 52 printf("%-17s%-17d%-15d%-19s%-s\n",stu[i].name,stu[i].number,stu[i].class,stu[i].gender,stu[i].score); 53 } 54 printf("数据已更新,请打开文件夹查看:)\n"); 55 exit(0); 56 } 57 void Txt_Read() //读取txt 58 { 59 system("clear"); 60 int j=5; 61 char name1[20]; 62 char name2[20]; 63 int num,class; 64 char sex[10]; 65 char score[20]; 66 FILE *fp; 67 struct student stu[500]; 68 printf("请输入所查询姓名:\n"); 69 printf("单次最多可查询5次"); 70 while((j--) 71 { 72 scanf("%s",name1); 73 strcpy(name2,name1); 74 strcat(name1,".txt"); 75 if ((fp = fopen(name1,"r")) == NULL) 76 { 77 printf("Failed to open file\n"); 78 } 79 fp = fopen(name1,"r"); 80 fscanf(fp,"%*[^\n]"); //略过第一行 81 fscanf(fp,"%s %d %d %s %s",&stu[i].name,&stu[i].number,&stu[i].class,&stu[i].gender,&stu[i].score); 82 printf("姓名 学号 班级 性别 线代成绩\n"); 83 printf("%-17s%-17d%-15d%-19s%-s\n",stu[i].name,stu[i].number,stu[i].class,stu[i].gender,stu[i].score); 84 fclose(fp); 85 } 86 exit(0); 87 } 88 int main() 89 { 90 int x; 91 while(1) 92 { 93 menu(); 94 scanf("%d", &x); 95 switch(x) 96 { 97 case 1: Txt_Read(); 98 break; 99 case 2: Txt_Write(); 100 break; 101 case 0: 102 printf("已退出\n"); 103 printf("欢迎下次使用:)\n"); 104 return 0; 105 break; 106 default: 107 printf("请检查你的输入:(\n"); 108 sleep(3); 109 system("clear"); 110 break; 111 } 112 } 113 return 0; 114 }
菜单界面
查询功能
添加&修改功能
退出程序
1.熟悉了文件基本操作相关函数的使用
2.结构体的使用使数据处理的方式高效简洁
3.了解缓冲区及EOF的概念,尝试如何打开二进制文件
原文:https://www.cnblogs.com/bob3000/p/12044606.html