>>500
> ・gets()は過去との互換性が必要な場合を除いて使うべきではない。
調べていたらバッファオーバーフローの原因になるので使わないようにと
いろんなサイトに書いてました・・・・。
fgets() というのを使うようにします。

> ・NULLは入るはずがない。NULキャラなら勿論入るが。
すみません。まだまだよくわかってないんですが、
自分でも何が言いたかったのかよくわかんないんですが
文字が入ってない状態ってことを言いたかったんです。
ヌル文字は入りますね。

> ・>>499に書かれたロジック以前に入力は行なっていないか? その場合空読みするべき。
>>499 のコード以前に cin で入力させていました。
これを消してやってみたら、問題なく動きました。
どういう動きをしてこういうことになるのかとか
細かいことはまだまだよくわからないんですが
これから勉強続けていけばわかってくるかなということで
今回はこれでよしとします。

ありがとうございました。