Tur alomati
|
Kutilayotgan qiymat
|
Argument turi
|
Son turidagi argument
|
d, D
|
O‘nlik butun
|
int * arg yoki long * arg
|
E,e
|
Suzuvchi nuqtali son
|
float * arg
|
F
|
Suzuvchi nuqtali son
|
float * arg
|
G,g
|
Suzuvchi nuqtali son
|
float * arg
|
O
|
Sakkizlik son
|
int * arg
|
O
|
Sakkizlik son
|
long * arg
|
I
|
O‘nlik, sakkizlik va o‘n oltilik butun son
|
int * arg
|
I
|
O‘nlik, sakkizlik va o‘n oltilik butun son
|
long * arg
|
U
|
Ishorasiz o‘nlik son
|
Unsigned int * arg
|
U
|
Ishorasiz o‘nlik son
|
Unsigned long * arg
|
X
|
O‘n oltilik son
|
int * arg
|
X
|
O‘n oltilik son
|
int * arg
|
Belgilar
|
S
|
Satr
|
char * arg (belgilar massivi)
|
C
|
Belgi
|
char * arg (belgi uchun maydon kengligi berilishi mumkin (masalan, %4s). N belgidan tashkil topgan belgilar massiviga ko‘rsatkich: char arg[N])
|
%
|
‘%’ belgisi
|
Hech qanday almashtirishlar baja–rilmaydi, ‘%’ belgisi saqlanadi.
|
Ko‘rsatkichlar
|
N
|
int * arg
|
%n argumentigacha muvaffaqiyatli o‘qilgan belgilar soni, aynan shu int ko‘rsatkichi bo‘yicha adresda saqlanadi.
|
P
|
YYYY:ZZZZ yoki ZZZZ ko‘rinishidagi o‘n oltilik
|
Ob’ektga ko‘rsatkich (far* yoki near*).
|
Oqimdagi belgilar bo‘lagini almashtiriladigan tur alomati-ning qabul qilishi mumkin bo‘lgan belgilar 12.2-jadvalda keltirilgan.
12.3–jadval. Format aniqlashtiruvchilari va ularning vazifasi
Komponenta
|
Bo‘lishi
shart yoki yo‘q
|
Vazifasi
|
[bayroq]
|
Yo‘q
|
Bayroq belgilari. CHiqarilayotgan qiy-matni chapga yoki o‘nga tekislashni, sonning ishorasini, o‘nlik kasr nuqta-sini, oxirdagi nollarni, sakkizlik va o‘n oltilik sonlarning alomatlarni chop etishni boshqaradi. Masalan, ‘-‘ bayrog‘i qiymatni ajratilgan o‘ringa nisbatan chapdan boshlab chiqarishni va kerak bo‘lsa o‘ngdan probel bilan to‘ldirishni bildiradi, aks holda chap tomondan probellar bilan to‘ldiradi va davomiga qiymat chiqariladi.
|
[]
|
Yo‘q
|
Maydon kengligini aniqlashtiruvchisi. CHiqariladigan belgilarning minimal sonini aniqlaydi. Zarur bo‘lsa qiymat yozilishidan ortgan joylar probel bilan to‘ldiriladi.
|
[.]
|
Yo‘q
|
Aniqlik. CHiqariladigan belgilarning maksimal sonini ko‘rsatadi. Sondagi raqamlarning minimal sonini.
|
[F|N|h|l|L]
|
Yo‘q
|
O‘lcham modifikatori. Argumentning qisqa (short - h) yoki uzun (long –l,L) ko‘ri-nishini, adres turini aniqlaydi.
|
|
Ha
|
Argument qiymati almashtiriladigan tur alomati belgisi
|
Formatli yozish funksiyasi printf() quyidagi prototipga ega:
int printf(const char * [,,...])
Bu funksiya standart oqimga formatlashgan chiqarishni amalga oshiradi. Funksiya argumentlar ketma-ketligidagi har bir argument qiymatini qabul qiladi va unga satridagi mos format aniqlashtiruvchisini qo‘llaydi va oqimga chiqaradi.
12.4–jadval. printf() funksiyasining almashtiriladigan tur belgilari
Tur alomati
|
Kutilayotgan qiymat
|
CHiqish formati
|
Son qiymatlari
|
D
|
Butun son
|
Ishorali o‘nlik butun son
|
I
|
Butun son
|
Ishorali o‘nlik butun son
|
O
|
Butun son
|
Ishorasiz sakkizlik butun son
|
U
|
Butun son
|
Ishorasiz o‘nlik butun son
|
X
|
Butun son
|
Ishorasiz o‘n oltilik butun son (a,b,c,d,e,f belgilari ishlatiladi)
|
X
|
Butun son
|
Ishorasiz o‘n oltilik butun son (A,B,C,D,E,F belgilari ishlatiladi)
|
F
|
Suzuvchi nuqtali son
|
[-]dddd.dddd ko‘rinishidagi suzuvchi nuqtali son
|
E
|
Suzuvchi nuqtali son
|
[-]d.dddd yoki e[+/-]ddd ko‘rini–shidagi suzuvchi nuqtali son
|
G
|
Suzuvchi nuqtali son
|
Ko‘rsatilgan aniqlikka mos e yoki f shaklidagi suzuvchi nuqtali son
|
E, G
|
Suzuvchi nuqtali son
|
Ko‘rsatilgan aniqlikka mos e yoki f shaklidagi suzuvchi nuqtali son. e format uchun ‘E’ chop etiladi.
|
Belgilar
|
S
|
Satrga ko‘rsatkich
|
0-belgisi uchramaguncha yoki ko‘rsa-tilgan aniqlikka erishilmaguncha belgilar oqimga chiqariladi.
|
C
|
Belgi
|
Bitta belgi chiqariladi
|
%
|
Hech nima
|
‘%’ belgisi oqimga chiqariladi.
|
Ko‘rsatkichlar
|
N
|
int ko‘rsatkich (int* arg)
|
%n argumentigacha muvaffaqiyatli chiqarilgan belgilar soni, aynan shu int ko‘rsatkichi bo‘yicha adresda saqlanadi.
|
P
|
Ko‘rsatkich
|
Argumentni YYYY:ZZZZ yoki ZZZZ ko‘rinishidagi o‘n oltilik songa aylantirib oqimga chiqaradi.
|
Har bir format aniqlashtiruvchisiga bitta o‘zgaruvchi adresi mos kelishi kerak. Agar format aniqlashtiruvchilari soni o‘zgaruvchi-lardan ko‘p bo‘lsa, natijada nima bo‘lishini oldindan aytib bo‘lmaydi. Aks holda, ya’ni o‘zgaruvchilar soni ko‘p bo‘lsa, ortiqcha o‘zgaruvchilar inobatga olinmaydi. Agar oqimga chiqarish muvaf-faqiyatli bo‘lsa, funksiya chiqarilgan baytlar sonini qaytaradi, aks holda EOF.
printf() funksiyasining satri argumentlarni almash-tirish, formatlash va berilganlarni oqimga chiqarish jarayonini boshqaradi va u ikki turdagi ob’ektlardan tashkil topadi:
oqimga o‘zgarishsiz chiqariladigan oddiy belgilar;
argumentlar ro‘yxatidagi tanlanadigan argumentga qo‘llani-ladigan format aniqlashtiruvchilari.
Format aniqlashtiruvchisi quyidagi ko‘rinishga ega:
% [][<.kenglik>] [.][F|N|h|l|L]
Format aniqlashtiruvchisi ‘%’ belgisidan boshlanadi va undan keyin 12.3–jadvalda keltirilgan shart yoki shart bo‘lmagan kompo-nentalar keladi.
Almashtiriladigan tur belgisining qabul qilishi mumkin bo‘lgan belgilar 12.4- jadvalda keltirilgan.
Berilganlar qiymatlarini oqimdan o‘qish va oqimga chiqarishda scanf() va prinf() funksiyalaridan foydalanishga misol:
#include
int main()
{
int bson, natija;
float hson;
char blg, satr[81];
printf("\nButun va suzuvchi nuqtali sonlarni,");
printf("\nbelgi hamda satrni kiriting\n");
natija=scanf("%d %f %c %s", &bson, &hson,&blg,satr);
printf("\nOqimdan %d ta qiymat o'qildi ",natija);
printf("va ular quyidagilar:");
printf("\n %d %f %c %s \n",bson, hson, blg, satr);
return 0;
}
Programma foydalanuvchidan butun va suzuvchi nuqtali sonlarni, belgi va satrni kiritishni so‘raydi. Bunga javoban foydalanuvchi tomonidan
10 12.35 A Satr
qiymatlari kiritilsa, ekranga
Oqimdan 4 ta qiymat o'qildi va ular quyidagilar:
10 12.35 A Satr
satrlari chop etiladi.
Fayldan o‘qish-yozish funksiyalari
Fayl oqimi bilan o‘qish-yozish amalini bajarish uchun fayl oqimini ochish zarur. Bu ishni, prototipi
FILE * fopen(const char* filename, const char *mode);
ko‘rinishida aniqlangan fopen() funksiyasi orqali amalga oshiri-ladi. Funksiya filename nomi bilan faylni ochadi, u bilan oqimni bog‘laydi va oqimni identifikatsiya qiluvchi ko‘rsatkichni javob tariqasida qaytaradi. Faylni ochish muvaffaqiyatsiz bo‘lganligini fopen() funksiyasining NULL qiymatli javobi bildiradi.
Parametrlar ro‘yxatidagi ikkinchi - mode parametri faylni ochish rejimini aniqlaydi. U qabul qilishi mumkin bo‘lgan qiymat-lar 12.5- jadvalda keltirilgan.
12.5-jadval. Fayl ochish rejimlari
Dostları ilə paylaş: |