Code:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE * fp ;
int number ;
int numbertemp ;
int numbertoinsert = 16 ;
fp = fopen("numbers_sort.bin" , "r+b" ) ;
if(fp == NULL)
{
printf("Error \n " ) ;
}
while(!feof(fp) )
{
fread(&number , sizeof(int) , 1 , fp ) ;
printf("%d\n" , number ) ;
}
//read 18
fseek(fp , -4*sizeof(int) , SEEK_END) ;
fread(&number , sizeof(int) , 1 , fp ) ;
printf("%d\n" , number ) ;
//write 16
fseek(fp , -1*sizeof(int) , SEEK_CUR) ;
fwrite(&numbertoinsert , sizeof(int) , 1 , fp ) ;
fflush(fp);
//read 21
fread(&numbertemp , sizeof(int) , 1 , fp ) ;
fseek(fp , -1*sizeof(int) , SEEK_CUR) ;
//write 18
fwrite(&number , sizeof(int) , 1 , fp ) ;
fflush(fp);
//read 24
fread(&number , sizeof(int) , 1 , fp ) ;
fseek(fp , -1*sizeof(int) , SEEK_CUR) ;
//write 21
fwrite(&numbertemp , sizeof(int) , 1 , fp ) ;
fflush(fp);
//read 27
fread(&numbertemp , sizeof(int) , 1 , fp ) ;
fseek(fp , -1*sizeof(int) , SEEK_CUR) ;
//write 24
fwrite(&number , sizeof(int) , 1 , fp ) ;
fflush(fp);
//write27
fwrite(&numbertemp , sizeof(int) , 1 , fp ) ;
fflush(fp);
printf("after insert \n " ) ;
fseek(fp , 0, SEEK_SET) ;
while(!feof(fp) )
{
fread(&number , sizeof(int) , 1 , fp ) ;
printf("%d\n" , number ) ;
}
getchar() ;
return 0 ;
}
what am i doing wrong. i dont see how it can get this output ?