Why does everyone say not to use gets()?
Unlike fgets(), gets() cannot be told the size of the buffer it's to read into, so it cannot be prevented from overflowing that buffer. As a general rule, always use fgets(). See question 7.1 for a code fragment illustrating the replacement of gets() with fgets().
References:
Rationale Sec. 4.9.7.2
H&S Sec. 15.7 p. 356
Read sequentially: prev next up top
This page by Steve Summit // Copyright 1995 // mail feedback