Fgets
fgets は gets や scanf と異なり改行文字も 1文字として数える。このため scanf や gets を fgets に置き換える場合に改行文字を除去する処理を加えておかなければ元のコードと同一の動作となる保証は無い。実際に入力データをfopenやsystem等の関数のパラメータとして渡す場合では文字列は末尾に改行文字があるとエラーとなる。