Jak ograniczyć funkcję scanf w C do drukowania błędu, gdy wejście jest za długie?

Chcę ograniczyć funkcję scanf, gdy wprowadzam na przykład achar* array <String...>&nbsp;który ma więcej niż 30 znaków, nie dostanie go, a moje dane będą błędne.

Mam podpowiedź, aby użyć [^ n] lub czegoś podobnego, ale nie rozumiem, jak to zrobić? Wiem, że mogę użyćscanf("%30s"..)&nbsp;ale nie chcę, aby dane wejściowe były poprawne i tylko błąd.

Każda pomoc byłaby świetna.