Gets
C11の1つ前の版の標準規格であるC99までにおいて、ヘッダーファイル <stdio.h> で gets は以下のような形式で宣言されていることが規定されていた。
gets は標準入力から改行 ('\n') が現れるまでデータを読み込み、引数で渡された s に格納する。このとき改行文字は終端記号 ('\0') に置き換えられる。戻り値は、エラーが発生した場合は NULL を、それ以外は s を返す。
scanf の書式文字列の %d や %s と異なり、改行文字は読み込んだ後で終端記号に書き換えるため、ストリームに改行文字は残らない。このため scanf のような改行文字の処理は必要とはしない。逆に scanf で呼ばれた直後に gets を呼ぶと、入力ストリームの先頭に改行文字が残っているため gets は空の文字列を返してしまう。このため scanf と混在して使うべきではないとされている。