http://www.cplusplus.com/reference/cstdio/fgets/
fgets copies the first num characters (including the '\0' at the end). If there are more on the stream, it ignores them.
So if you enter more than 15 characters, the first time you call fget(buf, 16, stdin) it will remove the first 15 characters from the SDTIN, and leave the rest there.
Hence, calling it for the second time, STDIN is not empty, and therefore there is no prompt for the user to enter anything. It just keeps reading the rest of the (not yet processed) characters from STDIN.