Asosiy farq – scanf vs get
Funksiya - bu ma'lum bir vazifani bajarish uchun bayonotlar to'plami. Bitta dasturda barcha bayonotlarni yozmasdan, uni bir nechta funktsiyalarga bo'lish mumkin. Dasturlashda foydalanuvchi o'z funktsiyalarini belgilashi mumkin. Dasturlash tillari tomonidan taqdim etilgan funksiyalar ham mavjud. C tili bir qator funktsiyalarni ta'minlaydi, shuning uchun dasturchi ularni boshidan amalga oshirmasdan bevosita foydalanishi mumkin. C tili tomonidan taqdim etilgan ikkita bunday funktsiya scanf va getdir. Ushbu maqolada ushbu ikki funktsiya o'rtasidagi farq muhokama qilinadi. Scanf va gets o'rtasidagi asosiy farq shundaki, scanf bo'sh joy, yangi qator yoki fayl oxiri (EOF) bilan to'qnash kelganda ma'lumot olishni tugatadi, gets esa bo'sh joyni kirish qatorining bir qismi sifatida ko'rib chiqadi va yangi qator yoki EOF bilan uchrashganda kiritishni tugatadi.
Scanf nima?
Scanf funksiyasi klaviaturadan kiritilgan ma'lumotlarni o'qiy oladi va ularni berilgan format spetsifikatsiyasiga muvofiq saqlaydi. U bo'sh joy, yangi qator yoki EOF paydo bo'lguncha kirishni o'qiydi. Sintaksis quyidagicha.
scanf(“format qatori”, oʻzgaruvchilar manzillari roʻyxati);
Skanerni tushunish uchun quyida keltirilgan misolga qarang.
01-rasm: bitta kirish bilan skanerlash
Yuqoridagi dasturga koʻra, klaviaturadan olinadigan kiritish butun son boʻlib, format spetsifikatsiyasi %d. Agar u belgi qiymatini olayotgan bo'lsa, format spetsifikatsiyasi %c dir. Agar suzuvchi nuqta qiymati olsangiz, format spetsifikatsiyasi %f dir. Qabul qilingan kirish qiymati raqam o'zgaruvchisida saqlanishi kerak. Shuning uchun o'zgaruvchining raqamining manzili scanf funksiyasiga o'tkaziladi. Endi raqam o'zgaruvchisi klaviaturadan foydalanuvchi tomonidan berilgan qiymatni o'z ichiga oladi. Va nihoyat, qiymatni tekshirish uchun raqam o'zgaruvchisini chop etishimiz mumkin.
Bir vaqtning oʻzida bir nechta qiymatlarni olish ham mumkin.
02-rasm: bir nechta kirishli skanerlash
Qabul qilingan ma'lumotlar raqam1 va raqam2 o'zgaruvchilarida saqlanadi. Qiymatlarni printf yordamida tekshirish mumkin.
Nima olinadi?
gets funksiyasi yangi qator yoki EOFga duch kelgunga qadar klaviaturadan kiritishni qabul qilish uchun ishlatiladi. Bo'shliq kiritishning bir qismi sifatida qabul qilinadi. Get funksiyasi sintaksisi quyidagicha.
gets(“satrni qayerda saqlash kerak”);
Agar satrni qabul qilishda xatolik yuzaga kelsa, gets funksiyasi null qiymatni qaytaradi.
Quyidagi misolga qarang,
03-rasm: oladi
Kirish gets funksiyasi tomonidan qabul qilinadi va word1 oʻzgaruvchisida saqlanadi. Agar dasturchi gets o'rniga scanf dan foydalansa va "salom dunyo" kabi qatorni kiritsa, scanf bo'sh joy tufayli satrni ikkita satr sifatida o'qiydi. Lekin gets uni bir qator “salom dunyo” sifatida o‘qiydi.
Scanf va gets oʻrtasidagi oʻxshashliklar qanday?
- Ikkalasi ham C dasturlash tili tomonidan taqdim etilgan funksiyalar.
- Ushbu funksiyalardan foydalanish uchun ikkalasida stdio.h sarlavha fayli boʻlishi kerak.
- Ikkalasidan ham standart kirishdan kirish uchun foydalanish mumkin.
Scanf va gets oʻrtasidagi farq nima?
scanf vs get |
|
scanf - boʻsh joy, yangi qator yoki EOFga duch kelmaguncha standart kirishdan kiritilgan maʼlumotlarni oʻqish uchun C funksiyasi. | gets - yangi qator yoki EOFga duch kelgunga qadar standart kirishdan kiritilgan ma'lumotlarni o'qish uchun C funktsiyasi. U boʻshliqni kiritishning bir qismi sifatida koʻradi. |
Sintaksis | |
scanf funksiyasi format qatorini va oʻzgaruvchilar manzillari roʻyxatini oladi. masalan scanf(“%d”, &raqam); | gets funksiyasi qabul qilingan qiymatni saqlash uchun oʻzgaruvchi nomini oladi. Masalan, oladi(ism); |
Moslashuvchanlik | |
scanf har xil turdagi ma'lumotlarning bir nechta qiymatlarini o'qiy oladi. | gets() faqat belgilar qatori ma'lumotlarini oladi. |
Xulosa – scanf vs get
scanf va gets C dasturlash tili tomonidan taqdim etilgan funksiyalardir. Foydalanuvchi bu funksiyalarni boshidan amalga oshirishi shart emas. Ular to'g'ridan-to'g'ri o'z dasturlarida foydalanishlari mumkin. Scanf va gets o'rtasidagi farq shundaki, scanf bo'shliq, yangi qator yoki fayl oxiri (EOF) bilan duch kelganda ma'lumotlarni qabul qilishni tugatadi va bo'sh joyni kirish satrining bir qismi sifatida ko'rib chiqadi va yangi qator yoki EOF bilan uchrashganda kiritishni tugatadi. Scanf yoki gets dan foydalanish ko'pincha klaviatura bo'lgan standart kirishdan foydalanuvchi ma'lumotlarini qabul qilish usuliga bog'liq. scanf olishdan koʻra moslashuvchanroq.
Scanf vs gets-ning PDF-versiyasini yuklab oling
Siz ushbu maqolaning PDF-versiyasini yuklab olishingiz va iqtibos keltirgan holda oflayn maqsadlarda foydalanishingiz mumkin. Iltimos, PDF versiyasini bu yerdan yuklab oling scanf vaoʻrtasidagi farq