Fgets
fgets は文字列を読み込む関数なので、当然ながら scanf の数値入力に対してそのまま置き換えることは出来ない。このような場合は fgets でまず文字列として取り込んだ後、sscanfを用いて入力することで置き換えることが出来る。例えば
となるようなコードは
とすることで置き換えることが出来る。ただし、このように置き換えた場合には読み込むバッファの長さが十分であるという事を考慮しなければならない。また複数の数値を読み込む書式ではエラー処理のパターンが異なる(scanf#異常な入力が行われた時の処理を参照)ため、その事を十分認識しておく必要がある。