使うなとは言わない。

ただし、ユーザーが特定できていて、
なおかつ、そのユーザーが仕様以上の文字を入力する心配が無い場合のみにしてくれ。

#include <stdio.h>
int main()
{
    char szBuf[8];
    fgets(szBuf, sizeof szBuf / sizeof(szBuf[0]), stdin);
//    gets(szBuf);
    printf("%s", szBuf);
    return 0;
}

このままの場合と、fgetをコメントアウトしてgetsのコメントアウトを解除した場合で、
8文字以上入力して試してみてくれ。
ただし、バッファオーバーフローするので、自己責任で。
まぁ、Win32の環境なら他のプロセスにまでは影響はでないと思うが…。