Klíčový rozdíl – scanf vs. get
Funkce je sada příkazů k provedení určitého úkolu. Bez psaní všech příkazů ve stejném programu jej lze rozdělit do více funkcí. Při programování může uživatel definovat své vlastní funkce. Existují také funkce poskytované programovacími jazyky. Jazyk C poskytuje řadu funkcí, takže je programátor může používat přímo, aniž by je od začátku implementoval. Dvě takové funkce poskytované jazykem C jsou scanf a get. Tento článek popisuje rozdíl mezi těmito dvěma funkcemi. Klíčový rozdíl mezi scanf a get spočívá v tom, že scanf ukončí přijímání vstupu, když narazí na mezeru, nový řádek nebo konec souboru (EOF), zatímco get považuje mezeru za součást vstupního řetězce a ukončí vstup, když narazí na nový řádek nebo EOF.
Co je scanf?
Funkce scanf umí číst vstupy z klávesnice a ukládat je podle daného specifikátoru formátu. Čte vstup, dokud nenarazí na mezeru, nový řádek nebo EOF. Syntaxe je následující.
scanf(“formátový řetězec”, seznam adres proměnných);
Chcete-li pochopit scanf, použijte níže uvedený příklad.
Obrázek 01: scanf s jedním vstupem
Podle výše uvedeného programu je vstup z klávesnice celé číslo, takže specifikátor formátu je %d. Pokud získává hodnotu znaku, specifikátor formátu je %c. Pokud získáváte hodnotu s plovoucí desetinnou čárkou, specifikátor formátu je %f. Přijatá vstupní hodnota by měla být uložena v proměnné číslo. Proto je adresa proměnné číslo předána do funkce scanf. Nyní proměnná číslo obsahuje hodnotu zadanou uživatelem z klávesnice. Nakonec můžeme vytisknout proměnnou čísla a zkontrolovat hodnotu.
Je také možné přijímat více než jednu hodnotu najednou.
Obrázek 02: scanf s více vstupy
Přijaté vstupy jsou uloženy v proměnných číslo1 a číslo2. Hodnoty lze zkontrolovat pomocí printf.
Co je dostane?
Funkce gets se používá k příjmu vstupu z klávesnice, dokud nenarazí na nový řádek nebo EOF. Bílé znaky jsou považovány za součást vstupu. Syntaxe funkce get je následující.
gets(“kam uložit řetězec”);
Pokud při příjmu řetězce dojde k chybě, funkce get vrátí hodnotu null.
Viz níže uvedený příklad,
Obrázek 03: dostane
Vstup je přijat funkcí get a uložen do proměnné word1. Pokud programátor použil scanf místo get a vložil řetězec jako „hello world“, scanf přečte řetězec jako dva řetězce kvůli mezerám. Ale get to bude číst jako jeden řetězec „ahoj světe“.
Jaké jsou podobnosti mezi scanf a get?
- Obě funkce poskytuje programovací jazyk C.
- Pro použití těchto funkcí by obě měly obsahovat hlavičkový soubor stdio.h.
- Oba lze použít k získání vstupu ze standardního vstupu.
Jaký je rozdíl mezi scanf a get?
scanf vs get |
|
scanf je funkce C pro čtení vstupu ze standardního vstupu, dokud nenarazí na mezeru, nový řádek nebo EOF. | gets je funkce C pro čtení vstupu ze standardního vstupu, dokud nenarazí na nový řádek nebo EOF. Považuje mezery za součást vstupu. |
Syntaxe | |
Funkce scanf přebírá formátovací řetězec a seznam adres proměnných. např. scanf(“%d”, &číslo); | Funkce gets přebírá název proměnné pro uložení přijaté hodnoty. Např. dostane(jméno); |
Flexibilita | |
scanf umí číst více hodnot různých typů dat. | gets() získá pouze data řetězce znaků. |
Shrnutí – scanf vs get
scanf a get jsou funkce poskytované programovacím jazykem C. Uživatel nemusí tyto funkce implementovat od začátku. Mohou je přímo používat ve svých programech. Rozdíl mezi scanf a get spočívá v tom, že scanf ukončí přijímání vstupu, když narazí na mezeru, nový řádek nebo konec souboru (EOF) a považuje mezeru za součást vstupního řetězce a ukončí vstup, když narazí na nový řádek nebo EOF. Použití scanf nebo get závisí na způsobu přijímání uživatelského vstupu ze standardního vstupu, kterým je většinou klávesnice. scanf je flexibilnější než get.
Stáhněte si PDF verzi scanf vs gets
Můžete si stáhnout PDF verzi tohoto článku a použít ji pro offline účely podle citace. Stáhněte si prosím PDF verzi zde Rozdíl mezi scanf a get