Įvadas:
Printf() ir Scanf() yra integruotos bibliotekos funkcijos C kalba, kurios atlieka suformatuota įvestis ir suformatuota išvestis funkcijas. Šios funkcijos yra apibrėžtos ir deklaruotos stdio.h antraštės failą . The 'f' in printf ir scanf reiškia 'suformatuotas' . Taigi, abi funkcijos printf() ir scanf() naudokite kodus formato eilutėje, kad nurodytumėte, kaip turi būti formatuojamos išvesties arba įvesties reikšmės. Norėdami naudoti, turime importuoti antraštės failą printf() ir scanf() :
#include
Šiame straipsnyje aptarsime skirtumą tarp printf () ir scanf (), tačiau prieš aptardami skirtumus, turime žinoti apie printf () ir scanf () su jo sintaksė ir pavyzdžiais.
Printf():
Tai spaudiniai bet kas tarp dvigubos kabutės su formato specifikacijos %c, %d,%f, ir tt, kad būtų rodoma kintamojo arba konstantos reikšmė, taip pat gali būti pabėgimo sekos simbolių, pvz , dėl nauja linija, ir horizontalus skirtukas , atitinkamai.
pakeiskite eilutę Java
Sintaksė:
printf('(string) %format_specifier (string)',variable);
Scanf():
Tai leidžia mums nuskaityti vieną ar kelias reikšmes, kurias vartotojas įvedė per pulto klaviatūrą. Galime įdėti tiek pat formato specifikacijos tiek įvesčių, kiek norime su formatu arba be jo.
Sintaksė:
scanf(%format_specifier, &pointer_to_variable);
Formato specifikacijos eilutė:
Pirmajame parametre printf ir scanf , praeiname formato eilutė arba formato specifikacijos eilutė , ir nurodome, kokio tipo reikšmę vartotojas ketina įvesti.
Duomenų tipas | Konversija | formato eilutė |
---|---|---|
Sveikasis skaičius | trumpas sveikasis skaičius | %d arba % i |
trumpas nepasirašytas | % in | |
seniai pasirašytas | % ld | |
seniai nepasirašytas | % lu | |
nepasirašytas šešioliktainis | % x | |
nepasirašytas aštuntasis | %O | |
Tikras | plūdė | % f arba % g |
dvigubai | %lf | |
pasirašytas personažas | %c | |
nepasirašytas char | %c | |
styga | %s |
Pavyzdžiui, jei vartotojas įeina dvidešimt kaip įvestis, kaip dvidešimt yra dešimtainė sveikojo skaičiaus reikšmė , mes nurodome visas dešimtaines sveikųjų skaičių reikšmes C, naudodami %d formato specifikacija . Panašiai, plaukiojančios vertės yra nurodyti naudojant %f .
Pagrindinis Printf() ir Scanf() kodas:
1 pavyzdys:
#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; }
Išvestis:
Please enter the two values:8 6 The sum = 14 sub = 2 mul = 48
Paaiškinimas:
Aukščiau pateiktoje programoje mes naudojame scanf() nuskaityti įvestį iš konsolės ir išsaugoti juos kintamuosiuose a ir b. Po to atliekame aritmetines operacijas kaip papildymas , atimti , ir daugyba ir vėliau išsaugokite rezultatus trys nauji kintamieji (Sum, Sub, Mul). Galiausiai, naudojant printf() funkcija , spausdiname rezultatus.
aštrus kampas
2 pavyzdys:-
#include int main() { int a; scanf('%d %d', &a); printf('Execution finished...'); return 0; }
Aukščiau pateiktoje programoje scanf() nuskaito du programos įvestis, nors perduodame vieną kintamąjį, nes nurodėme du formato parametrai . Visada atsimink, In scanf()/printf() Visi formato specifikacijos turi būti tas pats, kitaip galime gauti netikėtų vykdymo klaidų.
3 pavyzdys:
int main() { int a, b; scanf('%d', &a, &b); printf('Execution finished...'); return 0; }
Išvestis:
5 Execution finished...
Paaiškinimas:
Aukščiau pateiktoje programoje scanf() skaito tik vieną vartotojo įvestį, nes nurodėme tik vienas formato specifikatorius . Taigi iš šio pavyzdžio darome išvadą, kad nė viena įvestis nebus paimta, atsižvelgiant į skaičių formato specifikacijos .
4 pavyzdys:
#include int main() { int a; scanf('%d', a); printf('Execution finished'); }
Išvestis:
6 Segmentation fault
Paaiškinimas:
Aukščiau pateiktoje programoje kintamojo reikšmę perduodame į scanf() vietoj kintamojo adreso. Tai sukels a Klaida . Linux sistemoje gausime segmentavimo klaidą.
java pupelė
5 pavyzdys:
#include int main() { int a = 10; int b = 20; printf('the value of a = %d, the value of b = %d', a, b); }
Išvestis:
the value of a = 10, the value of b = 20
Paaiškinimas:
Aukščiau pateiktoje programoje, kada printf nuskaito formato eilutę, ji pakeis formato specifikacijos (%d) su tikrosiomis vertybėmis, į kurias pereiname printf() . y., pirmoji formato specifikacija bus pakeista pirmąja reikšme, kurią perduodame printf (), ir taip toliau.
Pagrindiniai skirtumai tarp Printf() ir Scanf()
Keletas skirtumų tarp printf ir scanf yra šie: