Mega Code Archive

 
Categories / C / File
 

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; }