Kľúčový rozdiel – scanf a get
Funkcia je súbor príkazov na vykonanie konkrétnej úlohy. Bez písania všetkých príkazov v rovnakom programe je možné ho rozdeliť do viacerých funkcií. Pri programovaní môže užívateľ definovať svoje vlastné funkcie. Existujú aj funkcie poskytované programovacími jazykmi. Jazyk C poskytuje množstvo funkcií, takže ich programátor môže používať priamo bez ich implementácie od začiatku. Dve takéto funkcie poskytované jazykom C sú scanf a get. Tento článok popisuje rozdiel medzi týmito dvoma funkciami. Kľúčový rozdiel medzi scanf a get je v tom, že scanf ukončí prijímanie vstupu, keď narazí na medzeru, nový riadok alebo koniec súboru (EOF), zatiaľ čo get považuje medzeru za súčasť vstupného reťazca a ukončí vstup pri stretnutí s novým riadkom alebo EOF.
Čo je scanf?
Funkcia scanf dokáže čítať vstupy z klávesnice a ukladať ich podľa daného špecifikátora formátu. Číta vstup, kým nenarazí na medzeru, nový riadok alebo EOF. Syntax je nasledovná.
scanf(“formátový reťazec”, zoznam adries premenných);
Pozrite si príklad uvedený nižšie, aby ste pochopili scanf.
Obrázok 01: scanf s jedným vstupom
Podľa vyššie uvedeného programu je vstup z klávesnice celé číslo, takže špecifikátor formátu je %d. Ak získava hodnotu znaku, špecifikátor formátu je %c. Ak získate hodnotu s pohyblivou rádovou čiarkou, špecifikátor formátu je %f. Prijatá vstupná hodnota by mala byť uložená v premennej číslo. Preto je adresa premennej číslo odovzdaná do funkcie scanf. Teraz číselná premenná obsahuje hodnotu zadanú používateľom z klávesnice. Nakoniec môžeme vytlačiť premennú čísla a skontrolovať hodnotu.
Je tiež možné prijímať viac ako jednu hodnotu naraz.
Obrázok 02: scanf s viacerými vstupmi
Prijaté vstupy sú uložené v premenných číslo1 a číslo2. Hodnoty je možné skontrolovať pomocou printf.
Čo sa získa?
Funkcia gets sa používa na príjem vstupu z klávesnice, kým nenarazíte na nový riadok alebo EOF. Medzera sa považuje za súčasť vstupu. Syntax funkcie get je nasledovná.
gets(“kam uložiť reťazec”);
Ak sa pri prijímaní reťazca vyskytne chyba, funkcia get vráti nulovú hodnotu.
Pozrite si príklad nižšie,
Obrázok 03: dostane
Vstup je prijatý funkciou get a uložený do premennej word1. Ak programátor použil scanf namiesto get a vložil reťazec, ako napríklad „hello world“, scanf prečíta reťazec ako dva reťazce kvôli medzerám. Ale get to bude čítať ako jeden reťazec „ahoj svet“.
Aké sú podobnosti medzi scanf a get?
- Obe funkcie poskytuje programovací jazyk C.
- Na použitie týchto funkcií by obe mali obsahovať hlavičkový súbor stdio.h.
- Oboje možno použiť na získanie vstupu zo štandardného vstupu.
Aký je rozdiel medzi scanf a get?
scanf vs get |
|
scanf je funkcia C na čítanie vstupu zo štandardného vstupu, kým nenarazí na medzeru, nový riadok alebo EOF. | gets je funkcia C na čítanie vstupu zo štandardného vstupu, kým nenarazí na nový riadok alebo EOF. Biele znaky považuje za súčasť vstupu. |
Syntax | |
Funkcia scanf preberá formátovací reťazec a zoznam adries premenných. napr. scanf(“%d”, &číslo); | Funkcia gets preberá názov premennej na uloženie prijatej hodnoty. napr. dostane(meno); |
Flexibilita | |
scanf dokáže čítať viacero hodnôt rôznych typov údajov. | gets() získa iba údaje o reťazci znakov. |
Zhrnutie – scanf vs. dostane
scanf a get sú funkcie poskytované programovacím jazykom C. Používateľ nemusí tieto funkcie implementovať od začiatku. Môžu ich priamo použiť vo svojich programoch. Rozdiel medzi scanf a get je v tom, že scanf ukončí prijímanie vstupu pri stretnutí s prázdnym znakom, novým riadkom alebo koncom súboru (EOF) a považuje medzeru za časť vstupného reťazca a ukončí vstup pri stretnutí s novým riadkom alebo EOF. Použitie scanf alebo get závisí od spôsobu prijímania vstupu používateľa zo štandardného vstupu, ktorým je väčšinou klávesnica. scanf je flexibilnejší ako get.
Stiahnite si PDF verziu scanf vs gets
Verziu tohto článku si môžete stiahnuť vo formáte PDF a použiť ju na offline účely podľa citácie. Stiahnite si PDF verziu tu Rozdiel medzi scanf a get