A vubec, vse vyse zminene je naprosto nepodstatne, protoze zvolit "napsat si to sam" i kdyz je k dispozici standardni funkce je vzdy spatna volba (pokud nepotrebujete vyzdimat kazdou mikrosekundu) - a to z mnoha duvodu: kazdy, kdo to vezme po vas, si tu funkci bude muset precist, protoze nevi, co dela, pokud najde chybu, vy budete kopat okolo, ze "jste to tak myslel" - namisto "aha, scanf, ok, ten znam...".
Kdybych to měl řešit "po svém", pravděpodobně bych nepoužil C, kdybych musel použít C, je otázka, zda bych měl k dispozici jenom tyhle "standardní" funkce apod.
To, co jsem napsal plati pro produkcni kod, ale dost hrubym zpusobem to miji pointu tohoto vlakna. Tazatel je zacatecnik, chce nacist matici, dostal zadani udelat to v C a scanf je v tom jazyce standardni funkce...
OK, v pohodě. Zadání jsem neviděl - buďto tu není nebo jsem ho přehlédl. Přesto mi nepřijde to řešení s konečným automatem v takovémto případě špatné - vyřeší celkem jednoduše řádkování atd. Znaménko, whitespace apod. jsou úplně v pohodě, ošetřit "správně" invalidní znak je triviální, poskládání integeru z dekadického zápisu je triviální. Řešit hexa číslo je zvláštní, že se int nevejde do mezí typu je sice možné, ale co na tom vyřeší scanf()? Co když někdo napíše do vstupu stočíslicovou hodnotu?