#include
using namespace std;
int main()
{
struct employee
{
char name[64];
int age;
float salary;
} worker = { "Djon Doy", 33, 25000.0 }; ofstream emp_file("EMPLOYEE.DAT"); emp_file.write((char *) &worker, sizeof(employee)); return 0;
}
Odatda write funksiyasi belgilar satriga ko’rsatkich oladi. (char*) belgilari turlarga keltirish operatori bo’lib, bu operator siz ko’rsatkichni boshqa turga uzatayotganingiz haqida kompilyatorga axborot beradi. Xuddi shunday tarzda quyidagi dasturda read usulidan xizmatchi haqidagi axborotni fayldan o’qib olish uchun foydalanadi:
#include
#include
using namespace std;
int main()
{
struct employee
{
char name[64];
int age;
float salary;
} worker = { "Djon Doy", 33, 25000.0 }; ifstream emp_file("EMPLOYEE.DAT"); emp_file.read((char *) &worker, sizeof(employee)); cout << worker.name << endl;
cout << worker.age << endl; cout << worker.salary << endl; return 0;
}
Fayllar bilan ma’lumot almashish. Fayllar bilan ishlovchi oqimlar quyidagi sinflar obyektlari sifatida yaratiladi:
ofstream –ma’lumotlarni faylga yozish uchun; ifstream –fayldan ma’lumotlarni o’qish uchun; fstream – ma’lumotlarni o’qish va yozish uchun.
Bu sinflardan foydalanish uchun dastur matniga yordamchi sarlavhali fayl fstream.h qo’shilishi lozim.Shundan so’ng faylli oqimlarni quyidagicha aniqlash mumkin :
ofstream out_file;
ifstream in_file;
fstream io_file;
Faylli oqim yaratishdan so’ng konkret faylga open komponenta funksiyasi yordamida ulanish mumkin. Bu funksiya quyidagi ko’rinishga ega:
void open (const char *filename, int mode = ko’zda tutilgan qiymat int protection = qo’zda tutilgan qiymat )
Birinchi parametr filename mavjud yoki yaratilayotgan fayl nomi, ikkinchi parametr mode –fayl bilan ishlash rejimlari ko’rsatuvchi belgilar diz’yunksiyasi, uchinchi parametr protection (himoya) –kam ishlatiladi. To’g’rirog’i dasturchi uchun ko’zda tutilgan qiymati yetarlidir.
Fayl bilan ishlash rejimlari belgilari quyidagicha aniqlanadi:
enum ios:: open _mode {
in = 0x01 //faqat o’qish uchun ochish;
out = 0x02//faqat yozish uchun ochish;
ate = 0x04 //ochilganda fayl oxirini izlash;
app = 0x08 //ma’lumotlarni fayl oxiriga qo’shish; trunc = 0x10 //mavjud fayl o’rniga yangisini yaratish;
nocreate = 0x20//yangi fayl ochilmasin (fayl mavjud bo’lmasa open funksiyasi xato haqida ma’lumot beradi );
noreplace = 0x40//mavjud fayl ochilmasin;
binary = 0x80//ikkilik (matnli emas) almashinuv uchun ochilsin.
open funksiyasini chaqirish quyidagicha amalga oshiriladi Oqim_ nomi open(fayl nomi, rejim, himoya) Misollar:
outFile. open(“C:\\user\\result.dat”);
inFile. open(“Data.txt”);
ioFile. Open(“Chance.dat”, ios::out);
Oqim ofstream sinfiga tegishli bo’lsa, ikkinchi parametr ios:out qiymatga ega bo’ladi.
Ochish open() funksiyasining muvaffaqiyatli bajarilganligini tekshirish uchun ortiqcha yuklangan ! amalidan foydalaniladi. Agar xato mavjud bo’lsa natija 0 dan farqli bo’ladi. Misol uchun:
if(!int file)
{
cerr <<”faylni ochishda xato:\n”;
exit(1);
}
fstream sinfga tegishli oqimlar uchun ikkinchi parametr aniq ko’rsatilishi shart.
Misol keltiramiz:
Do'stlaringiz bilan baham: |