Uvod:
Printf() in Scanf() so vgrajene knjižnične funkcije v jeziku C, ki izvajajo formatiran vnos in formatiran izhod funkcije. Te funkcije so definirane in deklarirane v datoteka glave stdio.h . The 'f' v printf in scanf pomeni 'formatirano' . Torej, obe funkciji printf() in scanf() uporabite kode v formatnem nizu, da določite, kako naj bodo izhodne ali vhodne vrednosti oblikovane. Za uporabo moramo uvoziti datoteko glave printf() in scanf() :
#include
V tem članku bomo razpravljali o razlikah med printf() in scanf(), vendar preden razpravljamo o razlikah, moramo vedeti o printf() in scanf() z njuno sintakso in primeri.
Printf():
To odtisi karkoli vmes dvojni narekovaji z specifikatorji formata %c, %d,%f, itd., za prikaz vrednosti spremenljivke ali konstante in ima lahko tudi znake ubežnega zaporedja, kot je , za nova vrstica, in vodoravni zavihek , oz.
java bubble sort
Sintaksa:
printf('(string) %format_specifier (string)',variable);
Scanf():
Omogoča nam branje ene ali več vrednosti, ki jih uporabnik vnese s tipkovnico na konzoli. Postavimo jih lahko poljubno specifikatorji formata kolikor želimo vnosov z ali brez formata.
Sintaksa:
scanf(%format_specifier, &pointer_to_variable);
Niz za določitev oblike:
V prvem parametru printf in scanf , mimo formatni niz oz niz določevalca formata , in določimo, katero vrsto vrednosti bo uporabnik vnesel.
Vrsta podatkov | Pretvorba | formatni niz |
---|---|---|
Celo število | kratko celo število | %d ali % i |
kratko nepodpisano | % v | |
dolgo podpisano | % ld | |
dolgo nepodpisano | % lu | |
nepredznačeno šestnajstiško | % x | |
osmiško brez predznaka | %O | |
Resnično | lebdi | % f ali % g |
dvojno | %lf | |
podpisani znak | %c | |
nepredpisan znak | %c | |
vrvica | %s |
Na primer, če uporabnik vstopi dvajset kot vložek, kot dvajset je decimalna cela vrednost , podamo vse vrednosti decimalnih celih števil v C z uporabo %d specifikator formata . Podobno, plavajoče vrednosti so določeni z uporabo %f .
Osnovna koda za Printf() in Scanf():
Primer 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; }
Izhod:
Please enter the two values:8 6 The sum = 14 sub = 2 mul = 48
Pojasnilo:
V zgornjem programu uporabljamo scanf() za branje vnosa s konzole in njihovo shranjevanje v spremenljivke a & b. Po tem izvajamo aritmetične operacije, kot je dodatek , odštevanje , in množenje in pozneje shranite rezultate v tri nove spremenljivke (Sum, Sub, Mul). Končno z uporabo funkcijo printf(). , rezultate izpisujemo.
Primer 2:-
#include int main() { int a; scanf('%d %d', &a); printf('Execution finished...'); return 0; }
V zgornjem programu je scanf() prebere dva vhoda iz programa, čeprav posredujemo eno spremenljivko, ker smo podali dva specifikatorja formata . Vedno si zapomni, In scanf()/printf() vse specifikatorji formata ki jih posredujemo, mora biti enak, sicer lahko dobimo nekaj nepričakovanih napak med izvajanjem.
java ubežni znak
Primer 3:
int main() { int a, b; scanf('%d', &a, &b); printf('Execution finished...'); return 0; }
Izhod:
5 Execution finished...
Pojasnilo:
V zgornjem programu je scanf() prebere samo en vnos uporabnika, ker smo podali samo en specifikator formata . Iz tega primera torej sklepamo, da noben od vnosov ne bo upoštevan glede na število specifikatorji formata .
Primer 4:
#include int main() { int a; scanf('%d', a); printf('Execution finished'); }
Izhod:
6 Segmentation fault
Pojasnilo:
V zgornjem programu posredujemo vrednost spremenljivke scanf() namesto spremenljivega naslova. To bo vodilo do a napaka med izvajanjem . V Linuxu bomo prejeli napako napake segmentacije.
java vizualizator
Primer 5:
#include int main() { int a = 10; int b = 20; printf('the value of a = %d, the value of b = %d', a, b); }
Izhod:
the value of a = 10, the value of b = 20
Pojasnilo:
V zgornjem programu, ko printf skenira formatni niz, bo zamenjal specifikatorji oblike (%d) z dejanskimi vrednostmi, na katere prehajamo printf() . prvi specifikator formata bo zamenjan s prvo vrednostjo, ki jo posredujemo printf(), in tako naprej.
Osnovne razlike med Printf() in Scanf()
Nekaj razlik med printf in scanf je: -