Seek array element in a file : File Content Search « File « C / ANSI-C






Seek array element in a file

#include <stdio.h>
#include <stdlib.h>

double d[10] = {
  1.23, 9.87, 2.23, 2.9, 0.97,
  1.45, 5.34, 10.0, 1.801, 5.875
};

int main(void)
{
  long loc;
  double value;
  FILE *fp;

  if((fp = fopen("myfile", "wb"))==NULL) {
    printf("Cannot open file.\n");
    exit(1);
  }

  /* write the entire array in one step */
  if(fwrite(d, sizeof d, 1, fp) != 1) {
    printf("Write error.\n");
    exit(1);
  }
  fclose(fp);

  if((fp = fopen("myfile", "rb"))==NULL) {
    printf("Cannot open file.\n");
    exit(1);
  }

  printf("Which element? ");
  scanf("%ld", &loc);
  if(fseek(fp, loc*sizeof(double), SEEK_SET)) {
    printf("Seek error.\n");
    exit(1);
  }

  fread(&value, sizeof(double), 1, fp);
  printf("Element %ld is %f", loc, value);

  fclose(fp);

  return 0;
}


           
       








Related examples in the same category

1.File content seek
2. Reposition stream's pointer indicator: how to use fseek
3.Seek a byte in file
4.Search specified file for specified character