Yes it is. However, you need to format the data when you write it so that you will be able to read it back in.
For example, you could:
- TEMP=24.5
-
ALTiTUDE= 35000
-
FUEL= 24500
In this scheme you read a record until you reach an =. Now look at what you read and if you see TEMP then you read until the end of the record and convert 24.5 to a double.
By having a key for each data element your data can be written in any order because you can always figure out later what was written.
Another approach is to use a CSV file (comma-separated-values). Here you need to know the order of the data items and you searate each value with a "comma". This is either a real comma or some other thing which you recognize at "not-data".
But you must always write temp,altitude,fuel in that order.
I would not write out actual structs but instead would unpack them and write the indiivual members. Then to read back you pack the items back into the struct. Here I would write a read and a write function where you pass in a struct pointer. This way you hide the messy details of unpacking and packing.