Úvod:
Printf() a Scanf() jsou vestavěné funkce knihovny v jazyce C, které provádějí formátovaný vstup a formátovaný výstup funkcí. Tyto funkce jsou definovány a deklarovány v hlavičkový soubor stdio.h . The 'F' v printf a scanf znamená 'formátovaný' . Tedy obě funkce printf() a scanf() použijte kódy v rámci formátovacího řetězce k určení, jak mají být formátovány výstupní nebo vstupní hodnoty. K použití potřebujeme importovat soubor záhlaví printf() a scanf() :
#include
V tomto článku budeme diskutovat o rozdílech mezi printf() a scanf(), ale než budeme diskutovat o rozdílech, musíme vědět o printf() a scanf() s jejich syntaxí a příklady.
Printf():
To tiskne cokoliv mezi dvojité uvozovky s specifikátory formátu %c, %d,%f, atd., aby se zobrazila hodnota proměnné nebo konstanty a může mít také znaky escape sekvence jako , pro nový řádek, a horizontální záložka , resp.
salman khan věk
Syntax:
printf('(string) %format_specifier (string)',variable);
Scanf():
Umožňuje nám číst jednu nebo více hodnot zadaných uživatelem prostřednictvím klávesnice na konzole. Můžeme jich umístit tolik specifikátory formátu tolik vstupů, kolik chceme s formátem nebo bez něj.
Syntax:
scanf(%format_specifier, &pointer_to_variable);
Řetězec specifikátoru formátu:
V prvním parametru printf a scanf , míjíme formátovací řetězec nebo řetězec specifikátoru formátu a určíme, jaký typ hodnoty se uživatel chystá zadat.
Datový typ | Konverze | formátovací řetězec |
---|---|---|
Celé číslo | krátké celé číslo | %d nebo % i |
krátké nepodepsané | % v | |
dlouho podepsaný | % ld | |
dlouho nepodepsané | % lu | |
šestnáctkové číslo bez znaménka | % X | |
osmičkový bez znaménka | %Ó | |
Nemovitý | plovák | % f nebo % g |
dvojnásobek | %lf | |
podepsaný znak | %C | |
nepodepsaný char | %C | |
tětiva | %s |
Například pokud uživatel zadá dvacet jako vstup, jako dvacet je desetinná celočíselná hodnota , specifikujeme všechny dekadické celočíselné hodnoty v C pomocí Specifikátor formátu %d . Podobně, plovoucí hodnoty jsou specifikovány pomocí %F .
distributivní zákon booleovská algebra
Základní kód pro Printf() a Scanf():
Příklad 1:
#include int main() { int a, b; int sum = 0, sub = 0, mul = 0; printf('Please enter the two values:'); /* Read input */ scanf('%d%d', &a, &b); sum = a+b; sub = a-b; mul = a*b; /* Print output */ printf('The sum = %d sub = %d mul = %d', sum, sub, mul); return 0; }
Výstup:
Please enter the two values:8 6 The sum = 14 sub = 2 mul = 48
Vysvětlení:
Ve výše uvedeném programu používáme scanf() číst vstupy z konzoly a ukládat je do proměnných a & b. Poté provádíme aritmetické operace jako přidání , odčítání , a násobení a později uložit výsledky do tři nové proměnné (Sum, Sub, Mul). Nakonec pomocí funkce printf(). , tiskneme výsledky.
Příklad 2:-
#include int main() { int a; scanf('%d %d', &a); printf('Execution finished...'); return 0; }
Ve výše uvedeném programu scanf() čte dva vstupy z programu, i když předáváme jednu proměnnou, protože jsme zadali dva specifikátory formátu . Vždy pamatujte, In scanf()/printf() všechny specifikátory formátu které předáme, by mělo být stejné, jinak bychom mohli dostat nějaké neočekávané runtime chyby.
Příklad 3:
int main() { int a, b; scanf('%d', &a, &b); printf('Execution finished...'); return 0; }
Výstup:
5 Execution finished...
Vysvětlení:
Ve výše uvedeném programu scanf() čte pouze jeden vstup od uživatele, protože jsme zadali pouze jeden specifikátor formátu . Z tohoto příkladu tedy vyvozujeme, že žádný ze vstupů nebude brán v závislosti na počtu specifikátory formátu .
Příklad 4:
#include int main() { int a; scanf('%d', a); printf('Execution finished'); }
Výstup:
6 Segmentation fault
Vysvětlení:
Ve výše uvedeném programu předáváme hodnotu proměnné scanf() místo proměnné adresy. To povede k a chyba za běhu . V Linuxu dostaneme chybu segmentace.
jak stará je kylie jenner
Příklad 5:
#include int main() { int a = 10; int b = 20; printf('the value of a = %d, the value of b = %d', a, b); }
Výstup:
the value of a = 10, the value of b = 20
Vysvětlení:
Ve výše uvedeném programu, kdy printf prohledá formátovací řetězec, nahradí jej specifikátory formátu (%d) se skutečnými hodnotami, ke kterým přecházíme printf() . tj. první specifikátor formátu bude nahrazen první hodnotou, kterou předáme printf(), a tak dále.
Základní rozdíly mezi Printf() a Scanf()
Několik rozdílů mezi printf a scanf je: -