2012年(106)
分类: C/C++
2012-05-08 00:59:45
练习1:
#include "stdlib.h"
#include "iostream.h"
#include "stdio.h"
void main()
{FILE *fp1,*fp2;
char ch,f1[10],f2[10];
cout<<"输入文件1的文件名:";
cin>>f1;
if((fp1=fopen(f1,"w+"))==NULL)
{printf("cannot open file\n");
exit(0);}
cout<<"输入文件1的数据内容(以‘#’结束)"<
ch=getchar();
while(ch!='#')
{fputc(ch,fp1);
ch=getchar();
}
Cout<<"输入文件2的文件名: ";
scanf("%s",b);
if((fp2=fopen(b,"w+"))==NULL)
{
printf("Cannot open file.");
exit(0);
}
rewind(fp1);
while(!feof(fp1))
fputc(fgetc(fp1),fp2);
printf("\n输出文件1:");
rewind(fp1);
while(!feof(fp1))
putchar(fgetc(fp1));
printf("\n输出文件2:");
rewind(fp2);
while(!feof(fp2))
putchar(fgetc(fp2));
printf("\n");
fclose(fp1);
fclose(fp2);
}
}
练习2:
#include "stdlib.h"
#include "iostream.h"
#include "stdio.h"
#define FORMAT "%d %s %d %d %d "
#define N 5
struct student
{
intnum;
charname[20];
intscore[3];
}stu[N];
void input(char a[]) // a用于接收要写入数据的文件名
{
inti;
FILE*fp;
if((fp=fopen(a,"w"))==NULL)
{
printf("Cannotopen file.");
exit(0);
}
cout<<"输入学生的数据:"<
for(i=0;i
{
scanf(FORMAT,&stu[i].num,stu[i].name,&stu[i].score);
fprintf(fp,FORMAT,stu[i].num,stu[i].name,stu[i].score);
}
fclose(fp);
}
void output(char a[],int sn) // sn用于接收要输出文件中的学生人数
{
inti;
FILE*fp;
if((fp=fopen(a,"r"))==NULL)
{
printf("Cannotopen file.");
exit(0);
}
cout<
for(i=0;i
{
fscanf(fp,FORMAT,&stu[i].num,stu[i].name,&stu[i].score);
printf(FORMAT,stu[i].num,stu[i].name,stu[i].score);
printf("\n");
}
fclose(fp);
}
int select(char a[],char b[]) // 函数返回值为挑选出来的学生人数
{
intn,y,z,i;
cout<<"输入课程号〈1—3〉:";
cin>>n;
cout<
cin>>y>>z;
cout<
for(i=0;i<5;i++)
if(stu[i].score[n]>y&&stu[i].score[n]
returni;
}
void main()
{
int sn;
input("stu.txt");
output("stu.txt",N);
sn=select("stu.txt","range.txt");
output("range.txt",sn);
}