1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 void main() 4 { 5 //使用文件的操作 步骤 6 //1.定义文件指针变量 7 char name[100]; 8 FILE *fp; 9 //2.打开文件 10 fp= fopen("E:\八维.doc","w"); 11 //3.判断这个文件是否打开。 12 if(fp==NULL)//这个指针指向的位置 是空的。 13 { 14 printf("error"); 15 } 16 //4.读/写操作(核心)这里 写里放任何学过的东西。只要类型对,可以存里 17 printf("请输入一段话:"); 18 scanf("%s",name); 19 fprintf(fp,"俊哥刚才写的内容为:%s",name);//往文件里 输出内容。意思:就是往文件写内容 20 //5.关闭文件 21 fclose(fp); 22 //6.关闭程序 23 exit(0); 24 }
1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 struct student // ① 定义结构体类型变量存放学生信息 4 { 5 //内部成员 6 char name[100];//姓名 7 int id;//学号 8 int cj;//C语言成绩 9 }stu[3];//学生数组 10 void main() 11 { 12 //编程实现,从键盘录入3个学生的信息, 13 //包括姓名,学号,C语言成绩,并将这些数据打印到控制台。 输出到空 14 //数据录入后,将学生信息写入文件中,文件名为“import_student.txt”。 15 // ② 定义文件指针 16 FILE *fp; 17 int i;//循环变量 18 // ③ 提示输入学生信息 19 printf("提示输入学生信息 "); 20 for(i=0;i<3;i++) 21 { 22 printf("第%d个学生的姓名:",i+1); 23 scanf("%s",stu[i].name); 24 printf("第%d个学生的学号:",i+1); 25 scanf("%d",&stu[i].id); 26 printf("第%d个学生的C语言成绩:",i+1); 27 scanf("%d",&stu[i].cj); 28 } 29 // ④ 提示输出学生信息 30 for(i=0;i<3;i++) 31 { 32 printf("第%d个学生的姓名:%s,学生的学号:%d,学生的C语言成绩:%d ",i+1,stu[i].name,stu[i].id,stu[i].cj); 33 } 34 // ⑤ 正确将学生信息写入文件中 35 // ⑥ 打开文件 36 fp=fopen("E:\18单元练习手册.doc","w"); 37 // ⑦ 判断是否正确打开文件 38 if(fp==NULL) 39 { 40 printf("没有找到文件,error "); 41 } 42 // ⑧ 将数据写入文件中 43 for(i=0;i<3;i++) 44 { 45 fprintf(fp,"第%d个学生的姓名:%s,学生的学号:%d,学生的C语言成绩:%d ",i+1,stu[i].name,stu[i].id,stu[i].cj); 46 } 47 // ⑨ 关闭文件 48 fclose(fp); 49 }
1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 #include "string.h"//字符串头文件 4 #include "windows.h"//系统头文件 5 struct team //① 定义结构体数组,正确定义变量 6 { 7 char name[100];//员工 8 int yj;//业绩 9 }t[3]; //③ 正确定义结构体(用来存放员工的姓名和业绩绩点) 10 void main() 11 { 12 //存储一个团队3名员工的姓名和业绩绩点,然后输入一个员工的姓名, 13 //查找该人是否为团队的成员,如果是提示是团队成员, 14 //同时输出该员工的业绩绩点,如果不是提示不是团队成。 15 //要求:将查找到的员工信息写入到 D盘下文件夹名为staff的staff_inform.txt文件中(如果没有D盘,可以写在别的盘中) 16 //② 正确定义变量,数组,指针变量等 17 int i,maxb=0,max;//最大下标 最大业绩 18 char cz[100];//姓名 19 FILE *fp;//文件 20 int sf;//是否查找 21 //④ 定义结构体变量存储一个团队的3个员工的信息,利用循环赋值 22 for(i=0;i<3;i++) 23 { 24 printf("请输入第%d员工的姓名:",i+1); 25 scanf("%s",t[i].name); 26 printf("请输入第%d员工的业绩:",i+1); 27 scanf("%d",&t[i].yj); 28 } 29 max=t[0].yj; 30 //⑤ 比较三名员工的业绩绩点,输出绩点最高的员工信息 31 for(i=0;i<3;i++) 32 { 33 if(max<t[i].yj) 34 { 35 max=t[i].yj; //把最大值 赋值过来 36 maxb=i;//把最大值下标 赋值过来 37 } 38 } 39 printf("输出绩点最高的员工信息:姓名为:%s,业绩绩点为:%d ",t[maxb].name,t[maxb].yj); 40 //⑥ 提示输入要查找的姓名 41 for(;;)//⑨ 询问是否继续查找,是则继续,否则退出程序 42 { 43 printf("提示输入要查找的姓名:"); 44 scanf("%s",cz); 45 //⑦ 判断是否是该团队的员工,并输出正确的结果 46 fp=fopen("E:\staff\staff_inform.txt","w"); 47 if(fp==NULL) 48 { 49 printf("没有找到该文件,error "); 50 } 51 for(i=0;i<3;i++) 52 { 53 if(strcmp(cz,t[i].name)==0)//查找。就是循环比较。 54 { 55 printf("该员工找到了姓名为:%s,业绩绩点为:%d ",t[i].name,t[i].yj); 56 //⑧ 如果要查找的员工是该团队员工,要求将员工信息写入到 D盘下文件夹名为staff的staff_inform.txt文件 57 fprintf(fp,"该员工找到了姓名为:%s,业绩绩点为:%d ",t[i].name,t[i].yj); 58 } 59 } 60 printf("是否继续查找:"); 61 scanf("%d",&sf); 62 if(sf==0)//⑨ 询问是否继续查找,是则继续,否则退出程序 63 { 64 exit(0); 65 } 66 } 67 68 69 }
1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 #include "windows.h"//头文件 4 struct student //① 正确定义结构体(用来存放学生的数据) 5 { 6 int id; //学号 7 char name[100];//姓名 8 int age; //年龄 9 char adr[100]; //家庭地址 10 }stu[2]; 11 void main() 12 { 13 //编程实现如下功能: 14 //从键盘输入两个学生数据(学号,姓名,年龄,家庭地址), 15 //写入一个文件中,再读出这两个学生的数据显示在屏幕上。? fprintf(fp,"",); 16 //要求:将学生数据存储在D盘文件夹stu_infor下的stu_infor.txt里。 17 //(没有D盘,可以自己指定位置) 18 // 19 //② 在主函数中正确定义变量,指针,以及结构体变量 20 int i;//下标 21 FILE *fp;//1.文件指针 6 22 // write 写入,如果没有该文件,它会创建一个。 23 // append r 24 //2.利用指针文件 指向 该文件。 25 fp=fopen("E:\stu_infor\stu_infor.txt","w"); 26 //3.判断是否打开文件 27 if(fp==NULL)//NULL 为空的意思 28 { 29 printf("提示没有找到error."); 30 exit(0);//没有找到的时候 ,直接退出程序 31 } 32 //③ 通过循环输入2个学生信息 33 for(i=0;i<2;i++) 34 { 35 printf("输入第%d个学生的学号:",i+1); 36 scanf("%d",&stu[i].id); 37 printf("输入第%d个学生的姓名:",i+1); 38 scanf("%s",stu[i].name); 39 printf("输入第%d个学生的年龄:",i+1); 40 scanf("%d",&stu[i].age); 41 printf("输入第%d个学生的家庭地址:",i+1); 42 scanf("%s",stu[i].adr); 43 } 44 //④ 写入txt文件中 45 for(i=0;i<2;i++) 46 { 47 fprintf(fp,"第%d个学生的学号:%d,姓名:%s,年龄:%d,家庭地址:%s ",i+1,stu[i].id,stu[i].name,stu[i].age,stu[i].adr); 48 } 49 //⑤ 再从文件中读取出学生的数据,并在屏幕上显示 (问题) 50 for(i=0;i<2;i++) 51 { 52 printf("第%d个学生的学号:%d,姓名:%s,年龄:%d,家庭地址:%s ",i+1,stu[i].id,stu[i].name,stu[i].age,stu[i].adr); 53 } 54 } 55
1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 #include "windows.h" 4 void main() 5 { 6 //利用文件 实现 一维数组的所有操作。 7 //一维数组的所有操作 都可以写在文件里。 8 //比如 输入 输出 平均 最大 最小 奇偶数。 9 10 //实现文件的步骤 11 //1.定义文件指针 12 FILE *fp; 13 int a[5],i,max,min,sum=0;//定义的一维数组 14 //2.打开文件 建立指针与文件的关系 15 fp=fopen("E:\12号上午文件.doc","w");//w只写 w+ 读写 16 //3.判断是否打开文件 没有的话直接结束程序 17 if(fp==NULL) 18 { 19 printf("error,没有找到! "); 20 exit(0); 21 } 22 //4.文件的读写 23 for(i=0;i<5;i++) 24 { 25 printf("请输入一个数:"); 26 scanf("%d",&a[i]); 27 sum=sum+a[i];//求总和 和平均分 28 } 29 printf("一维数组的内容为: "); 30 for(i=0;i<5;i++) 31 { 32 printf(" %d ", a[i]); //打印到屏幕上 33 fprintf(fp," %d ", a[i]);//往文件里 打印内容 34 } 35 printf("数组的总分为:%d,平均分为:%.2f ",sum,(float)sum/5); 36 fprintf(fp,"数组的总分为:%d,平均分为:%.2f",sum,(float)sum/5); 37 //给最大值 最小值 变量 赋初始值 38 max=min=a[0]; 39 //数组的最大值 最小值 40 for(i=0;i<5;i++) 41 { 42 if(max<a[i]) 43 { 44 max=a[i]; 45 } 46 if(min>a[i]) 47 { 48 min=a[i]; 49 } 50 } 51 printf("数组的最大值为:%d,最小值为:%d ",max,min); 52 fprintf(fp,"数组的最大值为:%d,最小值为:%d ",max,min); 53 //5.文件的关闭。 54 fclose(fp); 55 }
1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 #include "windows.h" 4 void main() 5 { 6 // 数组int a[10]={623,970,407,229,821,371,537,370,334,101}, 7 // 求数组所有元素为偶数的个数, 8 // 下标为奇数元素的平均值, 9 // 数组中为水仙花数的元素下标、 10 // 数组中值最大的元素下标。 11 //(水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。 12 // 例如: 1^3 + 5^3+ 3^3 = 153) 13 14 //① 正确定义变量和数组 15 FILE *fp; 16 int a[10]={623,970,407,229,821,371,537,370,334,101}; 17 // 下标 0 1 2 3 4 5 6 7 8 9 18 int i,j=0,ou=0,jsum=0,max,maxb=0;//循环变量 ou偶数 jsum奇数总和 maxb为最大值下标 19 int g,s,b;//个 十 百 20 fp=fopen("E:\一维数组.doc","w");//建立文件的关系 打开文件 21 if(fp==NULL) 22 { 23 printf("没有找到,error! "); 24 exit(0);//退出系统 25 } 26 //② 往文件里打印计算数组中偶数的个数还要输出到屏幕上 27 for(i=0;i<10;i++) 28 { 29 if(a[i]%2==0) 30 { 31 ou++;//计数 32 } 33 } 34 printf("偶数的个数:%d ",ou); 35 fprintf(fp,"偶数的个数:%d ",ou); 36 //③ 往文件里打印计算下标为奇数元素的平均值 还要输出到屏幕上 37 for(i=0;i<10;i++) 38 { 39 if(a[i]%2==1) 40 { 41 jsum=jsum+a[i]; 42 j++; 43 } 44 } 45 printf("奇数的总和:%d,平均分为:%.2f ",jsum,(float)jsum/j); 46 fprintf(fp,"奇数的总和:%d,平均分为:%.2f",jsum,(float)jsum/j); 47 //④ 往文件里打印输出数组中为水仙花数的元素下标 还要输出到屏幕上 48 for(i=0;i<10;i++) 49 { 50 g=a[i]%10; //120 20 0 个 51 s=a[i]/10%10; //120 12 %10 2 十 52 b=a[i]/100; 53 if(g*g*g+s*s*s+b*b*b == a[i]) //每一位的立方的结果 想加 等于 它本身 54 { 55 printf("该水仙花数为:%d,下标为:%d ",a[i],i); 56 fprintf(fp,"该水仙花数为:%d,下标为:%d ",a[i],i); 57 } 58 } 59 60 //⑤ 往文件里打印数组中值最大的元素下标 还要输出到屏幕上 61 max=a[0];//赋值第一个元素 62 for(i=0;i<10;i++) 63 { 64 if(max<a[i]) 65 { 66 max=a[i]; 67 maxb=i; 68 } 69 } 70 printf("数组中最大值的元素:%d,下标:%d ",max,maxb); 71 fprintf(fp,"数组中最大值的元素:%d,下标:%d ",max,maxb); 72 //⑥ 往文件里打印输出所有数组元素值 还要输出到屏幕上 73 printf("数组中的元素为: "); 74 for(i=0;i<10;i++) 75 { 76 printf(" %d ",a[i]); 77 fprintf(fp," %d ",a[i]); 78 } 79 }