すいやせん。質問させてください。

cygwinでgccという環境でCの話です。

二重whileで、両方の後続条件をscanf("%d",&in) != EOF
にしました。で、内側のwhileをCtrl+Dで抜けると外側のwhile
も一気に抜けてしまいます。
debianなどのUnix環境でコンパイルした場合は、ちゃんと内側だけ抜けてくれます。
外側まで一気に抜けてしまわないようにするにはどうすればいいっすか?