Mustaqil ishi mavzu: C++ tilida Fayllar bilan ishlash Bajardi: Berdiyeva X reja: Kirish


int fputs (const char *s, FILE *stream)



Download 44,63 Kb.
bet14/18
Sana03.01.2021
Hajmi44,63 Kb.
#54074
1   ...   10   11   12   13   14   15   16   17   18
Bog'liq
Mustaqil ish dasturlash-1

int fputs (const char *s, FILE *stream);

ko‘rinishida aniqlangan. Satr oxiridagi yangi satrga o‘tish belgisi va terminatorlar oqimga chiqarilmaydi. Oqimga chiqarish muvaffa-qiyatli bo‘lsa, funksiya nomanfiy son qaytaradi, aks holda EOF.

foef() funksiyasi aslida makros bo‘lib, fayl ustida o‘qish-yozish amallari bajarilayotganda fayl oxiri belgisi uchragan yoki yo‘qligini bildiradi. Funksiya

int feof(FILE *stream);

prototipiga ega bo‘lib u fayl oxiri belgisi uchrasa, noldan farqli sonni qaytaradi, boshqa holatlarda 0 qiymatini qaytaradi.

Quyida keltirilgan misolda faylga yozish va o‘qishga amallari ko‘rsatilgan.

#include

#include

int main()

{

char s;


FILE *in,*out;

if((in=fopen("D:\\USER\\TALABA.TXT","rt"))==NULL)

{

cout<<"Talaba.txt faylini ochilmadi!!\n";



return 1;

}

if((out=fopen("D:\\USER\\TALABA.DBL","wt+"))==NULL)



{

cout<<"Talaba.dbl faylini ochilmadi!!\n";

return 1;

}

while (!feof(in))



{

char c=fgetc(in);

cout<

fputc(c,out);

}

fclose(in);



fclose(out);

return 0;

}

Programmada «talaba.txt» fayli matn fayli sifatida o‘qish uchun ochilgan va u in o‘zgaruvchisi bilan bog‘langan. Xuddi shunday, «talaba.dbl» matn fayli yozish uchun ochilgan va out bilan bog‘langan. Agar fayllarni ochish muvaffaqiyatsiz bo‘lsa, mos xabar beriladi va programma o‘z ishini tugatadi. Keyinchalik, toki in fayli oxiriga etmaguncha, undan belgilar o‘qiladi va ekranga, hamda out fayliga chiqariladi. Programma oxirida ikkita fayl ham yopiladi.



Masala. G‘alvirli tartiblash usuli.

Berilgan x vektorini pufakcha usulida kamaymaydigan qilib tartiblash quyidagicha amalga oshiriladi: massivning qo‘shni elementlari xk va xk+1 (k=1,..,n-1) solishtiriladi. Agar xk>xk+1 bo‘lsa, u holda bu elementlar o‘zaro o‘rin almashadi. SHu yo‘l bilan birinchi o‘tishda eng katta element vektorning oxiriga joylashadi. Keyingi qadamda vektor boshidan n-1 o‘rindagi elementgacha yuqorida qayd qilingan yo‘l bilan qolgan elementlarning eng kattasi n-1 o‘ringa joylashtiriladi va h.k.

G‘alvirli tartiblash usuli pufakchali tartiblash usuliga o‘xshash, lekin xk va xk+1 (k=1,2,3,..,n-1) elementlar o‘rin almashgandan keyin «g‘alvirdan» o‘tkazish amali qo‘llaniladi: chap tomondagi kichik element imkon qadar chap tomonga tartiblash saqlangan holda ko‘chiriladi. Bu usul oddiy pufakchali tartiblash usuliga nisbatan tez ishlaydi.

Programma matni:

#include

#include

int * Pufakchali_Tartiblash(int*,int);

int main()

{

char fnomi[80];



printf("Fayl nomini kiriting:");

scanf("%s", &fnomi);

int Ulcham,i=0,* Massiv;

FILE * f1, *f2;

if((f1=fopen(fnomi,"rt"))==NULL)

{

printf("Xato:%s fayli ochilmadi!",fnomi);



return 1;

}

fscanf(f1,"%d",&Ulcham);



Massiv=(int *)malloc(Ulcham*sizeof(int));

while(!feof(f1))

fscanf(f1,"%d",&Massiv[i++]);

fclose(f1);

Massiv=Pufakchali_Tartiblash(Massiv,Ulcham);

f2=fopen("natija.txt","wt");

fprintf(f2,"%d%c",Ulcham,' ');

for(i=0; i

fprintf(f2,"%d%c",Massiv[i],' ');

fclose(f2);

return 0;

}

int * Pufakchali_Tartiblash(int M[],int n)



{

int almashdi=1, vaqtincha;

for(int i=0; i

{

almashdi=0;



for(int j=0; j

if (M[j]>M[j+1])

{

almashdi=1;



vaqtincha=M[j];

M[j]=M[j+1];

M[j+1]=vaqtincha;

int k=j;

if(k)

while(k && M[k]>M[k-1])



{

vaqtincha=M[k-1];

M[k-1]=M[k];

M[k]=vaqtincha;

k--;

}

}



}

return M;

}

Programmada berilganlarni oqimdan o‘qish yoki oqimga chiqarishda fayldan formatli o‘qish - fscanf() va yozish - fprintf() funk­siyalaridan foydalanilgan. Bu funksiyalarning mos ravishda scanf() va printf() funksiyalaridan farqi - ular berilganlarni birinchi argument sifatida beriladigan matn fayldan o‘qiydi va yozadi.



Nomi foydalanuvchi tomonidan kiritiladigan f1 fayldan butun sonlar massivining uzunligi va qiymatlari o‘qiladi va tartiblangan massiv f2 faylga yoziladi.

Vektorni tartiblash Pufakchali_Tartiblash() funksiyasi tomoni-dan amalga oshiriladi. Unga vektor va uning uzunligi kiruvchi para­metr bo‘ladi va tartiblangan vektor funksiya natijasi sifatida qaytariladi.

Navbatdagi ikkita funksiya fayl oqimidan formatlashmagan o‘qish-yozishni amalga oshirishga mo‘ljallangan.

fread() funksiyasi quyidagi prototipga ega:




Download 44,63 Kb.

Do'stlaringiz bilan baham:
1   ...   10   11   12   13   14   15   16   17   18




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish