Your loop has empty body because of mistakenly-placed ;
while(!(source_file.eof())); {
^
and since there is no code that would set the stream's eof
flag, it becomes an infinite loop, therefore it seems that the code that follows is never executed.