Introduktion:
Printf() och Scanf() är inbyggda biblioteksfunktioner i C-språk som utför formaterad ingång och formaterad utdata funktioner. Dessa funktioner definieras och deklareras i stdio.h header-fil . De 'f' i printf och scanf står för 'formaterad' . Så båda funktionerna printf() och scanf() använd koder i en formatsträng för att ange hur utdata- eller indatavärden ska formateras. Vi måste importera rubrikfilen som ska användas printf() och scanf() :
#include
I den här artikeln kommer vi att diskutera skillnaden mellan printf() och scanf(), men innan vi diskuterar skillnaderna måste vi känna till printf() och scanf() med dess syntax och exempel.
Printf():
Det grafik något mellan dubbla citattecken med formatspecifikationer %c, %d,%f, etc., för att visa ett värde på en variabel eller en konstant och kan också ha escape-sekvenstecken som , för ny linje, och horisontell flik , respektive.
java index för
Syntax:
printf('(string) %format_specifier (string)',variable);
Scanf():
Det tillåter oss att läsa ett eller flera värden som användaren matat in via tangentbordet på konsolen. Vi kan placera lika många formatspecifikationer hur många ingångar vi vill ha med eller utan format.
Syntax:
scanf(%format_specifier, &pointer_to_variable);
Formatspecifikationssträng:
I den första parametern av printf och scanf , vi passerar formatsträng eller formatspecifikationssträng , och vi anger vilken typ av värde användaren ska ange.
Data typ | Omvandling | formatsträng |
---|---|---|
Heltal | kort heltal | %d eller % i |
kort osignerad | % i | |
länge undertecknad | % ld | |
länge osignerad | % lu | |
osignerad hexadecimal | % x | |
osignerad oktal | %O | |
Verklig | flyta | % f eller % g |
dubbel | %lf | |
signerad karaktär | %c | |
osignerad röding | %c | |
sträng | %s |
Till exempel om en användare kommer in tjugo som input, som tjugo är en decimalt heltalsvärde , anger vi alla decimala heltalsvärden i C genom att använda %d formatspecifikator . Liknande, flytande värden specificeras med hjälp av %f .
Grundkod för Printf() och Scanf():
Exempel 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; }
Produktion:
Please enter the two values:8 6 The sum = 14 sub = 2 mul = 48
Förklaring:
I programmet ovan använder vi scanf() för att läsa indata från konsolen och lagra dem i variabler a & b. Efter det utför vi aritmetiska operationer som tillägg , subtraktion , och multiplikation och senare lagra resultaten i tre nya variabler (Sum, Sub, Mul). Slutligen, genom att använda printf() funktion , vi skriver ut resultaten.
Exempel 2:-
#include int main() { int a; scanf('%d %d', &a); printf('Execution finished...'); return 0; }
I programmet ovan, scanf() läser två ingångar från programmet trots att vi skickar en variabel för att vi specificerat två formatspecifikationer . Kom alltid ihåg, In scanf()/printf() alla formatspecifikationer att vi klarar bör vara samma, annars kan vi få några oväntade körtidsfel.
för varje java
Exempel 3:
int main() { int a, b; scanf('%d', &a, &b); printf('Execution finished...'); return 0; }
Produktion:
5 Execution finished...
Förklaring:
I programmet ovan, scanf() läser endast en ingång från användaren eftersom vi endast angav en formatspecifikation . Så från detta exempel drar vi slutsatsen att ingen av ingångarna kommer att tas beroende på antalet formatspecifikationer .
Exempel 4:
#include int main() { int a; scanf('%d', a); printf('Execution finished'); }
Produktion:
6 Segmentation fault
Förklaring:
I programmet ovan skickar vi värdet av en variabel till scanf() istället för den variabla adressen. Det kommer att leda till en körtidsfel . I Linux kommer vi att få ett segmenteringsfel.
sql ddl-kommandon
Exempel 5:
#include int main() { int a = 10; int b = 20; printf('the value of a = %d, the value of b = %d', a, b); }
Produktion:
the value of a = 10, the value of b = 20
Förklaring:
I programmet ovan, när printf skannar formatsträngen kommer den att ersätta formatspecifikationer (%d) med de faktiska värden som vi övergår till printf() . dvs den första formatspecifikationen kommer att ersättas av det första värdet som vi skickar in printf(), och så vidare.
Grundläggande skillnader mellan Printf() och Scanf()
Få skillnader mellan printf och scanf är: -