お忙しいところすみませんが教えてください

char s1[80], s2[80];
cout << "Enter two strings : ";
gets( s1 );
gets( s2 );
strcat( s1, s2 );
cout << s1 << "\n";

で、一回目の gets( s1 );
でなぜか入力の状態にならず
勝手に NULL が入ってしまいます。
cin だと問題ないのですが
違いは何なのでしょうか?