Əsas Fərq – scanf vs get
Funksiya müəyyən tapşırığı yerinə yetirmək üçün ifadələr toplusudur. Eyni proqramda bütün ifadələri yazmadan onu bir neçə funksiyaya bölmək olar. Proqramlaşdırmada istifadəçi öz funksiyalarını təyin edə bilər. Proqramlaşdırma dilləri tərəfindən təmin edilən funksiyalar da var. C dili bir sıra funksiyaları təmin edir, ona görə də proqramçı onları əvvəldən həyata keçirmədən birbaşa istifadə edə bilər. C dili tərəfindən təmin edilən iki belə funksiya scanf və getdir. Bu məqalə bu iki funksiya arasındakı fərqi müzakirə edir. Scanf və gets arasındakı əsas fərq ondan ibarətdir ki, scanf boşluq, yeni sətir və ya Faylın Sonu (EOF) ilə qarşılaşdıqda daxiletmə qəbulunu bitirir, halbuki gets boşluğu giriş sətirinin bir hissəsi hesab edir və yeni sətir və ya EOF ilə qarşılaşdıqda girişi bitirir.
Scanf nədir?
Scanf funksiyası klaviaturadan daxil edilmiş məlumatları oxuya bilər və onları verilmiş format təyinedicisinə uyğun olaraq saxlayır. Boşluq, yeni sətir və ya EOF ilə qarşılaşana qədər girişi oxuyur. Sintaksis aşağıdakı kimidir.
scanf("format sətri", dəyişənlərin ünvan siyahısı);
Scanf-i başa düşmək üçün aşağıdakı nümunəyə baxın.
Şəkil 01: bir girişlə scanf
Yuxarıdakı proqrama əsasən, klaviaturadan alınan giriş tam ədəddir, ona görə də format təyinedicisi %d-dir. Əgər simvol dəyəri alırsa, format təyinedicisi %c-dir. Əgər üzən nöqtə dəyəri alınırsa, format təyinedicisi %f-dir. Qəbul edilmiş giriş dəyəri rəqəm dəyişəndə saxlanmalıdır. Buna görə də dəyişən nömrənin ünvanı scanf funksiyasına ötürülür. İndi ədəd dəyişəni istifadəçinin klaviaturadan verdiyi dəyəri ehtiva edir. Nəhayət, dəyəri yoxlamaq üçün rəqəm dəyişənini çap edə bilərik.
Həmçinin eyni anda birdən çox dəyər qəbul etmək mümkündür.
Şəkil 02: çox girişli scanf
Qəbul edilən daxiletmələr 1 və 2 nömrəli dəyişəndə saxlanılır. Dəyərlər printf istifadə edərək yoxlana bilər.
Nə əldə edilir?
gets funksiyası yeni sətir və ya EOF ilə qarşılaşana qədər klaviaturadan daxiletmə qəbul etmək üçün istifadə olunur. Boşluq girişin bir hissəsi kimi qəbul edilir. Get funksiyasının sintaksisi aşağıdakı kimidir.
gets("sətiri harada saxlamaq lazımdır");
Sətrin qəbulu zamanı xəta olarsa, gets funksiyası null dəyəri qaytaracaq.
Aşağıdakı nümunəyə baxın,
Şəkil 03: alır
Daxiletmə gets funksiyası tərəfindən qəbul edilir və word1 dəyişənində saxlanılır. Proqramçı gets əvəzinə scanf-dən istifadə edərsə və “salam dünya” kimi bir sətir daxil edərsə, boşluğa görə scanf sətri iki sətir kimi oxuyacaqdır. Amma gets onu bir sətir "salam dünya" kimi oxuyacaq.
Scanf və gets arasında hansı oxşarlıqlar var?
- Hər ikisi C proqramlaşdırma dili tərəfindən təmin edilən funksiyalardır.
- Bu funksiyalardan istifadə etmək üçün hər ikisinə stdio.h başlıq faylı daxil edilməlidir.
- Hər ikisi standart girişdən daxil olmaq üçün istifadə edilə bilər.
Scanf və gets arasındakı fərq nədir?
scanf vs get |
|
scanf boşluq, yeni sətir və ya EOF ilə qarşılaşana qədər standart girişdən daxilolma oxumaq üçün C funksiyasıdır. | gets yeni sətir və ya EOF ilə qarşılaşana qədər standart girişdən daxil edilmiş məlumatı oxumaq üçün C funksiyasıdır. Boşluğu daxiletmənin bir hissəsi hesab edir. |
Sintaksis | |
scanf funksiyası format sətrini və dəyişənlərin ünvanlarının siyahısını götürür. məs. scanf("%d", &nömrə); | gets funksiyası alınan dəyəri saxlamaq üçün dəyişənin adını alır. məs. alır(ad); |
Elastiklik | |
scanf müxtəlif məlumat növlərinin çoxsaylı dəyərini oxuya bilər. | gets() yalnız simvol sətiri datasını əldə edəcək. |
Xülasə – scanf vs get
scanf və gets proqramlaşdırma dili C tərəfindən təmin edilən funksiyalardır. İstifadəçinin əvvəldən bu funksiyaları həyata keçirməsinə ehtiyac yoxdur. Onlardan birbaşa proqramlarında istifadə edə bilərlər. Scanf ilə gets arasındakı fərq ondan ibarətdir ki, scanf boşluq, yeni sətir və ya Faylın Sonu (EOF) ilə qarşılaşdıqda daxiletmə qəbulunu bitirir və boşluğu giriş sətirinin bir hissəsi kimi qəbul edir və yeni sətir və ya EOF ilə qarşılaşdıqda girişi bitir. Scanf və ya get-dən istifadə, çox vaxt klaviatura olan standart girişdən istifadəçi daxiletməsini qəbul etmə üsulundan asılıdır. scanf alınandan daha çevikdir.
Scanf vs gets-in PDF Versiyasını endirin
Bu məqalənin PDF versiyasını yükləyə və sitat qeydinə əsasən onu oflayn məqsədlər üçün istifadə edə bilərsiniz. Zəhmət olmasa PDF versiyasını buradan endirin scanf vəarasındakı fərq