Mega Code Archive

 
Categories / C / Code Snippets
 

Seek array element in a file

#include <stdio.h> #include <stdlib.h> double d[10] = { 4.23, 8.87, 3.23, 4.23, 0.97, 1.45, 3.78, 10.0, 1.801, 5.458 }; int main(void) { long loc; double value; FILE *filep; if((filep = fopen("myfile", "wb"))==NULL) { printf("Cannot open file.\n"); exit(1); } /* write the entire array in one step */ if(fwrite(d, sizeof d, 1, filep) != 1) { printf("Write error.\n"); exit(1); } fclose(filep); if((filep = fopen("myfile", "rb"))==NULL) { printf("Cannot open file.\n"); exit(1); } printf("Which element? "); scanf("%ld", &loc); if(fseek(filep, loc*sizeof(double), SEEK_SET)) { printf("Seek error.\n"); exit(1); } fread(&value, sizeof(double), 1, filep); printf("Element %ld is %f", loc, value); fclose(filep); return 0; }