I understand that fgets is the best for user input, comparing with scanf and gets. What is going on with the output? Is puts safe to use, and how much data this function can handle? If you use fputs the output is redirected only to the file, or you can redirect it to somewhere else? This is a lot of questions I apologize.