char buf[100];
gets(buf);

で何も入力せずにリターンを押した場合、bufには何が入ってくるのですか?

if (gets(buf)==NULL)
break;
というコードを見て、何も入力せずにリターンを押した場合にbreakと思ったのですが、
動かなかったです。