You're welcome, also by that I meant the macros that you used. It's really not a problem for now, but for more complicated things it can cause strange bugs, and be hell to debug. http://stackoverflow.com/a/14041847
For example, for your macro REWIND to work, your fstream variable defined in main must be named fs or else it won't work, so it's not portable. There are better ways to account for things like this, but I wouldn't worry about it for now.