すいません、実用的なC言語のプログラムの場合あまりscanf関数は使われないと聞いたのですが
本当でしょうか?教えてくださいよろしくお願いします。

http://wisdom.sakura.ne.jp/programming/c/c58.html
それから、scanf関数でぐぐったら上記のサイトが引っかかったのですが、

#include <stdio.h>

int main() {
char yn;
printf("猫耳は好きですか?y/n>");
scanf("%[yn]" , &yn);

printf("入力された値 = %c" , yn);
return 0;

このコードでscanf関数の後に[]が使われているのですがこれはなんですか?

C言語を始めたばかりの初心者なので右も左も分かりませんがよろしくお願いします。