Bevezetés:
Printf() és Scanf() beépített könyvtári funkciók C nyelvben, amelyek végrehajtják formázott bemenet és formázott kimenet funkciókat. Ezek a függvények a következőben vannak definiálva és deklarálva stdio.h fejlécfájlt . A 'f' ban ben printf és scanf jelentése 'formázott' . Tehát mindkét funkció printf() és scanf() használjon kódokat egy formátum karakterláncon belül a kimeneti vagy bemeneti értékek formátumának meghatározásához. A használathoz importálnunk kell a fejlécfájlt printf() és scanf() :
#include
Ebben a cikkben a printf() és a scanf() közötti különbségről fogunk beszélni, de mielőtt a különbségeket tárgyalnánk, ismernünk kell a printf() és scanf()-t szintaxisával és példáival együtt.
Printf():
Azt nyomatok bármi között dupla idézőjelek val vel formátum specifikációk %c, %d,%f, stb., változó vagy konstans értékének megjelenítéséhez, és tartalmazhatnak escape szekvencia karaktereket is, mint pl , számára új sor, és vízszintes fül , ill.
Hogyan találhatok meg rejtett alkalmazásokat androidon
Szintaxis:
printf('(string) %format_specifier (string)',variable);
Scanf():
Lehetővé teszi számunkra, hogy a felhasználó által a konzolon lévő billentyűzetről beírt egy vagy több értéket beolvassunk. Annyit elhelyezhetünk formátum-specifikációk annyi bemenetet, amennyit csak akarunk formátummal vagy anélkül.
Szintaxis:
scanf(%format_specifier, &pointer_to_variable);
Formátummeghatározó karakterlánc:
Az első paraméterben printf és scanf , átmegyünk formátum karakterlánc vagy formátummeghatározó karakterlánc , és megadjuk, hogy a felhasználó milyen típusú értéket fog megadni.
Adattípus | Átalakítás | formátum karakterlánc |
---|---|---|
Egész szám | rövid egész szám | %d vagy %i |
rövid aláírás nélküli | % ban ben | |
régen aláírva | % ld | |
régen aláíratlan | % lu | |
előjel nélküli hexadecimális | % x | |
előjel nélküli nyolcas | %O | |
Igazi | úszó | % f vagy % g |
kettős | %lf | |
aláírt karakter | %c | |
előjel nélküli char | %c | |
húr | %s |
Például ha egy felhasználó belép húsz bemenetként, mint húsz egy decimális egész érték , az összes decimális egész értéket megadjuk C-ben a segítségével %d formátummeghatározó . Hasonlóképpen, lebegő értékek használatával vannak megadva %f .
A Printf() és Scanf() alapkódja:
1. példa:
#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; }
Kimenet:
linux fájl szerkesztése
Please enter the two values:8 6 The sum = 14 sub = 2 mul = 48
Magyarázat:
A fenti programban a scanf() hogy beolvassa a bemenetet a konzolról és eltárolja azokat változókban a & b. Ezt követően számtani műveleteket hajtunk végre, mint pl kiegészítés , kivonás , és szorzás és később tárolja az eredményeket a három új változó (Sum, Sub, Mul). Végül a printf() függvény , kinyomtatjuk az eredményeket.
2. példa: -
#include int main() { int a; scanf('%d %d', &a); printf('Execution finished...'); return 0; }
A fenti programban scanf() két bemenetet olvas be a programból, bár egy változót adunk át, mert megadtuk két formátum-specifikáció . Mindig emlékezz, In scanf()/printf() mind a formátum-specifikációk amit átadunk, azonosnak kell lennie, különben váratlan futási hibákat kaphatunk.
3. példa:
int main() { int a, b; scanf('%d', &a, &b); printf('Execution finished...'); return 0; }
Kimenet:
5 Execution finished...
Magyarázat:
A fenti programban scanf() csak egy bemenetet olvas be a felhasználótól, mert csak mi adtuk meg egy formátumspecifikátor . Ebből a példából tehát arra a következtetésre jutunk, hogy a bemenetek egyikét sem veszik figyelembe a számtól függően formátum-specifikációk .
4. példa:
#include int main() { int a; scanf('%d', a); printf('Execution finished'); }
Kimenet:
6 Segmentation fault
Magyarázat:
A fenti programban egy változó értékét adjuk át scanf() a változó cím helyett. Ez oda fog vezetni a Futtatási hiba . Linuxban szegmentációs hibaüzenetet fogunk kapni.
Android telefon beállítások menü
5. példa:
#include int main() { int a = 10; int b = 20; printf('the value of a = %d, the value of b = %d', a, b); }
Kimenet:
the value of a = 10, the value of b = 20
Magyarázat:
A fenti programban mikor printf beolvassa a formátum karakterláncot, lecseréli a formátum specifikációk (%d) a tényleges értékekkel, amelyekre áttérünk printf() . azaz az első formátumspecifikátor helyére az első átadott érték lép printf(), stb.
Alapvető különbségek a Printf() és a Scanf() között
Néhány különbség a printf és a scanf között: