>>100
>  if (strcmp(buf, ".") == 0) break; /* 終了時は . だけを入力 */

"." ではなく ".\n" にしないと抜けられない