Can someone help me out with understanding the difference between
fprintf and puts
This would be better asked in a newsgroup devoted to the C programming
language, such as comp.lang.c - however, the short answer is that
fprintf (and printf, and sprintf) allow you much more extensive
formatting options than puts does.