You have a number of problems:
1) Line
36 42: percent is an uninitialized pointer. It contains garbage. You proceed to move data using this uninitialized pointer.
2) Line
49, 65, 71,216 59,79,90,216: cur is a global variable. This is a bad practice. It should be a local or member variable.
3) Line
117 141: You declare rec, then at line
168 196 you write it to outfile without ever moving anything to it. What exactly do you expect it to contain if you never move anything to it? Hint: It contains garbage.
4) You have memory leaks in your program. You allocate dynamic memory, but never release it.
5) Line
208,254 214,255: You read into rec, but never reference it.
6) It's a poor idea to be reading and writing structures (node) that contain pointers. They won't point to anything meaningful when you read them back in.
PLEASE USE CODE TAGS (the <> formatting button) when posting code.
http://v2.cplusplus.com/articles/jEywvCM9/
It makes it easier to read your code and it also makes it easier to respond to your post.
Hint: You can edit your previous post, highlight your code and press the <> formatting button.
Edit: Corrected line numbers to match OP's edited posted to add code tags.