Here, i have edited your code in some places, you will notice, and i have added a fuction to read the file. There are some bad practices in here, but you can use this to get an idea.
Code:
#include <stdio.h>
#include <stdlib.h>
void blah(void);
struct primary_plot {
double bearing;
double range;
double elevation;
};
typedef struct primary_plot PLOT;
struct primary_location {
double bearing;
double km_range;
double altitude;
};
typedef struct primary_location LOCATION;
int main()
{
int i;
FILE *fp;
LOCATION loc[25];
PLOT plots[25];
loc[0].km_range = 140.1 ;
loc[0].bearing = 260.17 ;
loc[0].altitude = 12063 ;
loc[1].km_range = 20.3;
loc[1].bearing = 281.31;
loc[1].altitude = 4312;
loc[2].km_range = 20.10;
loc[2].bearing = 301.52;
loc[2].altitude = 3310;
loc[3].km_range = 120.35;
loc[3].bearing = 301.51;
loc[3].altitude = 10078;
loc[4].km_range = 97.15;
loc[4].bearing = 328.29;
loc[4].altitude = 7320;
loc[5].km_range = 170.12;
loc[5].bearing = 353.20;
loc[5].altitude = 6340;
loc[6].km_range = 273.16;
loc[6].bearing = 349.17;
loc[6].altitude = 12750;
loc[7].km_range = 52.73;
loc[7].bearing = 0.02;
loc[7].altitude = 2160;
loc[8].km_range = 81.18;
loc[8].bearing = 28.31;
loc[8].altitude = 3720;
loc[9].km_range = 221.31;
loc[9].bearing = 42.11;
loc[9].altitude = 6815;
loc[10].km_range = 42.31;
loc[10].bearing = 83.97;
loc[10].altitude = 2170;
loc[11].km_range = 42.47;
loc[11].bearing = 84.11;
loc[11].altitude = 2130;
loc[12].km_range = 16.15;
loc[12].bearing = 86.10;
loc[12].altitude = 753;
loc[13].km_range = 73.42;
loc[13].bearing = 103.97;
loc[13].altitude = 7300;
loc[14].km_range = 73.15;
loc[14].bearing = 102.73;
loc[14].altitude = 8020;
loc[15].km_range = 259.63;
loc[15].bearing = 151.96;
loc[15].altitude = 12630;
loc[16].km_range = 278.10;
loc[16].bearing = 146.39;
loc[16].altitude = 13150;
loc[17].km_range = 103.15;
loc[17].bearing = 198.21;
loc[17].altitude = 8420;
loc[18].km_range = 45.18;
loc[18].bearing = 207.52;
loc[18].altitude = 5190;
loc[19].km_range = 310.15;
loc[19].bearing = 248.68;
loc[19].altitude = 13150;
loc[20].km_range = 10.28;
loc[20].bearing = 252.13;
loc[20].altitude = 853;
for (i=0; i<21; i++)
{
plots[i].bearing = loc[i].bearing;
plots[i].range = (loc[i].km_range * 40.0);
plots[i].elevation = (loc[i].altitude/(loc[i].km_range*1000) - loc[i].km_range/15200)*180/3.14159;
};
fp = fopen("primary", "wb");
if (fp == NULL)
{
printf("Blah. Error.");
exit(0);
};
fwrite(&plots, sizeof(PLOT), 21, fp);
fclose(fp);
blah();
return 0;
}
void blah(void)
{
FILE *fp;
int i;
PLOT tempstruct[25];
fp = fopen("primary", "r");
if (fp == NULL)
{
printf("Blah Error again!!!");
exit(0);
};
for (i=0; i<20; i++)
{
fread(&tempstruct[i], sizeof(PLOT), 1, fp);
printf("%lf %lf %lf\n", tempstruct[i].range,
tempstruct[i].bearing,
tempstruct[i].elevation);
};
fclose(fp);
}