C++ menyediakan perpustakaan
Tulis Fail Binari Menggunakan C++
Untuk menyimpan data ke dalam fail binari menggunakan C++, kaedah write() digunakan. Fungsi ini menulis bilangan bait yang ditentukan ke strim yang ditetapkan, bermula di lokasi penuding 'letak'. Jika penunjuk 'put' berada di hujung, fail dilanjutkan. Walau bagaimanapun, data baharu akan menimpa aksara sedia ada jika penunjuk berada dalam fail. Sekiranya berlaku ralat semasa proses penulisan, strim ditandakan sebagai berada dalam keadaan ralat. Sekarang, mari kita beralih kepada contoh untuk mempelajari cara menulis dalam fail binari menggunakan beberapa fungsi C++ yang mudah dan terbina dalam.
Kaedah 1: Menulis Fail Perduaan dengan Data Berstruktur
Anda mungkin perlu menulis data berstruktur, seperti struktur tersuai, ke fail binari dalam banyak kes. Mari kita pertimbangkan contoh yang mengandungi rekod seseorang yang merangkumi nama, ketinggian dan umur seseorang. Lihat kod yang diberikan berikut dan lihat penjelasannya:
#include
#include
struct Orang {
char nama [ lima puluh ] ;
int umur ;
berganda ketinggian ;
} ;
int utama ( ) {
std :: ofstream outFile ( 'people.bin' , std :: ios :: binari ) ;
jika ( ! outFile. ia terbuka ( ) ) {
std :: cerr << 'Ralat! Tidak dapat membuka fail untuk menulis!' << std :: endl ;
kembali 1 ;
}
Orang orang1 = { 'Kalsoom Ilyas' , 25 , 1.75 } ;
Orang orang2 = { 'Kalsoom Bajwa' , 30 , 1.68 } ;
outFile. menulis ( reinterpret_cast < char *> ( & orang 1 ) , saiz ( orang 1 ) ) ;
outFile. menulis ( reinterpret_cast < char *> ( & orang2 ) , saiz ( orang2 ) ) ;
outFile. dekat ( ) ;
std :: cout << 'Rekod orang itu ditulis ke fail binari dengan jayanya.' << std :: endl ;
kembali 0 ;
}
Berikut ialah pecahan kod dengan butiran khusus. Program ini bermula dengan mentakrifkan struktur tersuai bernama 'Orang'. Ia mempunyai tiga medan: nama, umur dan ketinggian. Butiran medan ini adalah seperti berikut:
- nama: Rentetan untuk menyimpan nama orang itu (sehingga 50 aksara)
- umur: Integer untuk menyimpan umur orang itu
- ketinggian: Ganda untuk menyimpan ketinggian orang itu
Selepas mentakrifkan struktur 'Orang', fungsi utama bermula iaitu titik masuk program. Baris pertama dalam program utama membuka fail bernama 'people.bin'. Kami menggunakan 'std::ofstream' untuk mencipta fail bernama 'people.bin' untuk menulis data dalam format binari. Memeriksa sama ada fail dibuka dengan jayanya adalah sangat penting. Jika tidak, mesej ralat ditunjukkan dan program berhenti. Oleh itu, dengan bantuan keadaan 'jika' dan fungsi is_open(), kami menyemak sama ada fail telah dibuka dengan jayanya atau tidak.
Di sini, dua objek 'Orang' dicipta. Kami mentakrifkan dua pembolehubah, 'orang1' dan 'orang2', daripada jenis 'Orang'. Kami menetapkan nama pembolehubah, umur dan nilai ketinggian untuk 'Kalsoom Ilyas' dan 'Kalsoom Bajwa'.
Sekarang kita mempunyai data untuk ditulis dalam fail binari, mari kita melaksanakan fungsi sebenar dengan fungsi write(). Kami menggunakan 'outFile.write' untuk menulis kandungan setiap objek 'Orang' pada fail. “reinterpret_cast
Selepas menulis data pada fail, adalah sangat penting untuk menutupnya dengan betul supaya tiada data akan hilang disebabkan oleh sebarang fungsi lain. Kami menggunakan outFile.close() untuk mengeluarkan sumber yang dikaitkan dengan fail dan memastikan bahawa data ditulis dengan tepat. Akhir sekali, kami mencetak mesej yang mengesahkan penulisan data yang berjaya ke fail binari.
Jika kami menerangkan contoh ini dalam istilah yang lebih mudah, bayangkan buku nota khas yang hanya boleh menyimpan maklumat tentang orang dalam bahasa rahsia. Kod ini mencipta pelan tindakan untuk menyusun maklumat (nama, umur, ketinggian). Ia membuka buku nota, mengisi profil untuk dua orang, menterjemah maklumat ke dalam bahasa rahsia, dan menulisnya dengan kemas di dalamnya. Ia kemudian menutup buku nota dengan selamat, mengekalkan profil untuk kegunaan masa hadapan. Rujuk kepada output program yang diberikan dalam petikan berikut:
Kaedah 2: Menulis Integer ke Fail Binari
Dalam kaedah ini, tatasusunan integer ditulis pada fail binari bernama 'integers.bin'. “reinterpret_cast
#include
int utama ( ) {
std :: ofstream outFile ( 'integers.bin' , std :: ios :: binari ) ;
jika ( ! outFile. ia terbuka ( ) ) {
std :: cerr << 'Ralat! Tidak dapat membuka fail untuk menulis!' << std :: endl ;
kembali 1 ;
}
int nombor [ ] = { 42 , 99 , - 1 , 0 } ;
outFile. menulis ( reinterpret_cast < char *> ( nombor ) , saiz ( nombor ) ) ;
outFile. dekat ( ) ;
std :: cout << 'Integer yang diberikan ditulis ke fail binari dengan jayanya.' << std :: endl ;
kembali 0 ;
}
Berikut ialah pecahan kod dengan butiran khusus:
“#include
Baris seterusnya iaitu “int numbers[] = {42, 99, -1, 0};” mentakrifkan tatasusunan bernama 'nombor' dengan integer 42, 99, -1 dan 0. 'outFile.write(reinterpret_cast
Kesimpulan
Menulis fail binari dalam C++ ialah kemahiran penting untuk mengendalikan pelbagai jenis data dengan cekap. Dalam penerokaan menulis fail binari dalam C++ ini, kami telah mempelajari cara kelas 'ofstream' boleh digunakan untuk mengendalikan data binari dengan cekap. Sama ada berurusan dengan integer mudah atau data berstruktur menggunakan struktur tersuai, proses itu melibatkan membuka aliran fail, menulis data dalam format binari dan kemudian menutup fail. Keupayaan ini memberikan kelonggaran kepada pembangun C++ untuk bekerja dengan pelbagai jenis data binari, menyumbang kepada kepelbagaian bahasa dalam aplikasi yang terdiri daripada pengaturcaraan peringkat sistem kepada pemprosesan multimedia.