i am having problems of updating record present in one file and writing them onto another file in the same record format. it will write the input from command line onto incomingr.dat but not collectr.dat.no errors .
the code is as follows
Code:
#include<stdio.h>
#include<stdlib.h>
//#include<conio.h>
struct request
{
float percent_seq;
char type_of_request[20];
int request_size;
};

struct collectrequest
{
float percent_seq;
char type_of_request[20];
int request_size;
};
struct request r;
int main()
{
FILE *fp;

fp=fopen("INCOMINGR.DAT","w");
if(fp==NULL)
{
printf("cannot open file");
return 0;
}

printf("\n enter percent_seq,type_of_request and request_size");
scanf("%f%s%d",&r.percent_seq,r.type_of_request,&r.request_size);
fprintf(fp,"%f%s%d\n",r.percent_seq,r.type_of_request,r.request_size);
fflush(stdin);
insertcollectrequest(fp);


fclose(fp);
return 0;
}
int insertcollectrequest(FILE *fp)
{
FILE *fp2;
struct collectrequest cr;
fp2=fopen("COLLECTR.DAT","w+i");
if(fp2==NULL)
{
printf("cannot open file");
return 0;
}
while(fread(&r,sizeof(r),1,fp)==1)
{
fprintf(fp2,"%f%s%d\n",cr.percent_seq,cr.type_of_request,cr.request_size);
}
fclose(fp2);
}