第十章 (答案仅供参考),有问题大家可以在评论区一起讨论。
10.2//用Windows的记事本编辑一个文本文件,编写程序读取该文件中的数据,并在屏幕上显示; #include#include int main() { FILE *fp; char name[20]; char ch; printf("请输入文件名称:n"); scanf("%s",name); fp=fopen(name,"r"); if(fp==NULL) { printf("File can not be opened!n"); exit(0);//返回程序; } ch=fgetc(fp);//以字符方式从文件中读取一个字符; while(ch!=EOF)//若读取到末尾,解fgetc()返回EOF(-1); { putchar(ch);//将字符送往屏幕; ch=fgetc(fp);//从文件读取下一个字符; } putchar('n'); fclose(fp);//关闭文件; return 0; }
10.3//将一个文本文件的内容复制到另一个文本文件中,文本文件的名字从键盘输入; #include#include int main() { FILE *fp1,*fp2; char data;//一个内存数据域 char c; char name1[21],name2[21]; printf("请输入要读的文件名:n"); scanf("%s",name1); fp1=fopen(name1,"w"); //fp1=fopen("student.txt","w"); if(fp1==NULL) { printf("File can not be opened!n"); exit(0);//返回程序; } scanf("%c",&c); while(c!='$') { fputc(c,fp1); scanf("%c",&c); } fclose(fp1); //fp1=fopen("student.txt","rb"); //fp2=fopen("stu.txt","wb"); fp1=fopen(name1,"rb");//以二进制打开文件,供读 printf("请输入要写的文件名:n"); scanf("%s",name2); fp2=fopen(name2,"wb");//以二进制打开文件,供写 if(fp1==NULL||fp2==NULL) { printf("File can not be opened!n"); exit(0);//返回程序; } fread(&data,sizeof(char),1,fp1);//从fp1中对一个字节的内容到变量data; while(!feof(fp1))//所要读的文件未读完,feof()返回值为0; { fwrite(&data,sizeof(char),1,fp2);//将变量data的内容复制到fp2中; fread(&data,sizeof(char),1,fp1);//从fp1中在读一个字节的内容到变量data } fclose(fp1); fclose(fp2); return 0; }
10.4//输入五个学生信息,(姓名,年龄,数学,英语,语文),将学生信息存入名为"student.txt"文本文件中, //每个学生占一行,各个数据之间用空格分隔,写文件采用fprintf()函数; #include#include #define N 5 struct STU { char name[21]; int age; float score[3];//三门课成绩; }; int main() { struct STU stu[N]; FILE *fp; int i,s; fp=fopen("student.txt","w"); if(fp==NULL) { printf("File can not be opened!n"); exit(0);//返回程序; } for(i=0;i
10.5 #include#include #define N 5 struct STU { char name[21]; int age; float score[3];//三门课成绩; float avg;//平均成绩 }; int main() { struct STU stu[N],t; FILE *fp; int i,j,s; float sum; fp=fopen("student.txt","r"); if(fp==NULL) { printf("File can not be opened!n"); exit(0);//返回程序; } printf("students information:n姓名 年龄 英语 数学 语文n"); //利用fscanf()从文件读出学生信息,利用返回值判断是否读出成功,(成功则返回fscanf以赋值变量的个数 //负责返回EOF(-1) for(i=0;i 10.6//定义一个结构体类型,其成员变量分别用来描述商品的名称,单价,数量,金额。输入n个商品的信息,将其保存到二进制文件中。 #include#include #define N 5 struct Product { char name[21];//名称 float price;//单价 int num;//数量 float money;//金额 }; int main() { struct Product p[N]; int i,n; char a[21];//用来存放文件地址; FILE *fp; printf("please input product numbers(1~%d):n",N); scanf("%d",&n); if(n<=0||n>N) { printf("please input again!n"); exit(0); } printf("please input text site:n"); scanf("%s",a);//二进制文件以dat为文件名后缀; fp=fopen(a,"wb"); if(fp==NULL) { printf("File can not be opened!n"); exit(0);//返回文件 } for(i=0;i 10.7//将第六题的商品信息文件读出并显示,要求在显示数据时,首先按照金额从高到低排序,若金额相同,在按产品单价从高到低排序; #include#include #define N 5 struct Product { char name[21];//名称 float price;//单价 int num;//数量 float money;//金额 }; int main() { struct Product p[N],t; int i,j,n; char a[21];//用来存放文件地址; FILE *fp; printf("please input text site:n"); scanf("%s",a);//二进制文件以dat为文件名后缀; fp=fopen(a,"rb"); if(fp==NULL) { printf("File can not be opened!n"); exit(0);//返回文件 } printf("product information:n名称 单价 数量 金额n"); for(i=0;i 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)