11- amaliy mashg’ulot mavzu: matnli fayllar bilan ishlash operatorlari. Ishning maqsadi


Download 0.51 Mb.
Pdf ko'rish
bet4/6
Sana07.01.2023
Hajmi0.51 Mb.
#1082277
1   2   3   4   5   6
Bog'liq
KIvLrBXsctH9rphY7YUmnGnV67r0uyV2jlUqxtD0 (1)

 
/* 
Binar fayllar. Binar fayllardan o‘qish va binar faylga yozish uchun 
istream::read() va ostream::write() usullaridan foydalaniladi. 
Quyidagi dasturda shu usullardan foydalanib. "bfayl1.txt" faylidan 
"bfayl2.txt" fayliga nusxa olinadi: 
*/ 
#include  
#include  
using namespace std; 
 
int main() 

char buffer; 
int index=0; 
//fayllar nomlari 
const char filenamel[] = " bfayl1.txt"; 


const char filename2[] = " bfayl2.txt"; 
//fayllarni ochish 
fstream filel(filenamel, ios::in); 
fstream file2(filename2, ios::out); 
//ko‘rsatkich fayl boshiga 
filel.seekg(0, ios::beg); 
file2.seekp(0, ios::beg); 
//birinchi simvolni o‘qish 
filel.read(&buffer, 1); 
//qolgan simvollarni vozish 
while(filel.good() && file2.good()) 

file2.write(&buffer, 1); 
index++; 
filel.seekp(index); 
file2.seekg(index); 
filel.read(&buffer, 1); 
}; 
//fayllarni yopish 
filel.close(); 
file2.close(); 
return 0; 

Dastur natijasi: 
Kompilyatsiyadan oldin 


 
Kompilyatsiyadan keyin 
 
Masala: uqish.txt faylida natural n soni berilgan. Berilgan n sonining 
raqamlaridan toqlarini yaratiladigan(masalan ff.txt) faylga yozish dasturini tuzing. 
 
Dastur matni:


 #include 
#include 
using namespace std; 
int main(){ 
int n, k; 
char fayl_nomi2[50]; 


 
printf("yozish fayl nomini va nuqta bilan kengaytmasini kiriting:"); 
scanf("%s",&fayl_nomi2); 
 
//uqish nomli fayl o'qish uchun ochilyapti 
ifstream fayl1; 
fayl1.open("uqish.txt"); 
 
//fayl yozish uchun ochilyapti 
ofstream fayl2; 
fayl2.open(fayl_nomi2); 
 
if (fayl1.is_open()){// o'qish faylini ochilganligini tekshirish 

 
fayl1 >> n;//n soni fayldan o'qilyapti 

 
} else cout<<"Fayl ochishda xatolik sodir bo'ldi\n"; 
 
while (n!=0){ 
k=n%10; 
if (k==0) { 
if ((k%2)!=0) 
cout<
if (fayl2.is_open()){//yozish faylini ochilganligini tekshirish 

 
fayl2<

 
} else cout<<"Fayl yaratishda xatolik sodir bo'ldi\n"; 

else 



if((k%2)!=0){ cout<

fayl2<
n=n/10; 
 


//ochilgan fayllarni yopish 
fayl1.close(); 
fayl2.close(); 
cout<<"\nDastur o'z ishini tugatdi!"; 

Kompilyatsiyadan oldin: 
 
 
Kompilyatsiyadan keyin: 


 
 
 


Istisno (exception) larni qayta ishlash (throw, try va catch). 
 
Ishning maqsadi: C++ dasturlash tilida binar fayllar yaratishni va ularni qayta 
ishlashni o’rganish. Fayllar bilan ishlash ko’nikmalarini oshirish.
Masalaning qo’yilishi. Har bir talaba guruh ro’yxatidagi tartib raqami 
bo’yicha quyidagi jadvallarda berilgan topshiriqlarni bajaradi. Dastur matni va 
dastur natijasini hisobot shaklida topshiradi. 
 
2-topshiriq uchun variantlar: 
2-jadval 
№ 
Masalaning sharti 

input faylida berilgan natural n sonining raqamlari yig’indisini output fayliga 
yozish dasturini tuzing. 

input faylida berilgan ikkita a va b natural sonlarining eng katta umumiy 
bo’luvchisini output fayliga yozish dasturini tuzing. 

input faylida berilgan natural n sonining faktorialini output fayliga yozish 
dasturini tuzing. 

input faylida berilgan n ta massiv elementlarini saralab output fayliga yozish 
dasturini tuzing. 

input faylida berilgan n ta son berilgan bu sonlardan 4 ga va 5 ga karralilarini 
output fayliga yozish dasturini tuzing. 

input faylida berilgan natural a va b sonlarining yig’indisini output fayliga 
yozish dasturini tuzing.tuzing. 10
20
≤a,b≤10
100 

input faylida o’nlik sanoq sistemasida berilgan a sonini ikkilik sanoq 
sistemasiga o’tkazib output fayliga yozish dasturini tuzing. 

input faylida A va B butun sonlari berilgan output fayliga bu sonlar orasida 
kelgan sonlarni yozish dasturini tuzing. 

Download 0.51 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




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