Basically you can. You have two choises.
1) As a binary that is not portable.
// Writing to a file inticaded by fp ...
fwrite( &record, sizeof(struct guest), 1, fp );
// Reading from a file inticaded by fp ...
fread( &record, sizeof(struct guest), 1, fp );
2) As a text, which is portable.
// Writing to a file inticaded by fp ...
fprintf( fp, "%d %20s %20s", record.tel, record.name, record.country );
// Reading from a file inticaded by fp ...
fscanf( fp, "%d %s %s", &record.tel, &record.name, &record.country );
With first choice (binary) you can read directly from the file, see an example here, if you save it as a text you will have to read line by line and give values manually in the fields of the struct.