Rationale :7.19.7.7 The gets function
Because gets does not check for buffer overrun, it is generally unsafe to use when its input is not under the programmer’s control. This has caused some to question whether it should appear in the Standard at all. The Committee decided that gets was useful and convenient in those special circumstances when the programmer does have adequate control over the input, and as 35 longstanding existing practice, it needed a standard specification. In general, however, the preferred function is fgets (see §7.19.7.2).
Dave Sinkula
long time no c
5,058 posts since Apr 2004
Reputation Points: 2,780
Solved Threads: 314
>but its has its own merits...
There are no merits to gets.
>say, the ease of accepting strings...
I've argued this point with authors before (Dan Gookin is one such example), and have yet to hear a sufficiently good explanation of how fgets(s, n, stdin) is so hard that it justifies the teaching of unsafe programming habits. Also, it's very common for programmers to prefer the first technique they learn for a task, and if the first thing they learn is gets...
Narue
Bad Cop
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401