C++ oferă biblioteca
Scrieți un fișier binar folosind C++
Pentru a salva datele într-un fișier binar folosind C++, este folosită metoda write(). Această funcție scrie un număr specificat de octeți în fluxul desemnat, începând de la locația pointerului „put”. Dacă indicatorul „pus” este la sfârșit, fișierul este extins. Cu toate acestea, noile date suprascrie caracterele existente dacă indicatorul se află în fișier. În cazul unei erori în timpul procesului de scriere, fluxul este marcat ca fiind într-o stare de eroare. Acum, să trecem la exemple pentru a învăța cum să scrieți într-un fișier binar folosind câteva funcții C++ simple și încorporate.
Metoda 1: Scrierea fișierelor binare cu date structurate
Poate fi necesar să scrieți date structurate, cum ar fi structuri personalizate, într-un fișier binar în multe cazuri. Să luăm în considerare un exemplu care conține o înregistrare a unei persoane care include numele, înălțimea și vârsta unei persoane. Vedeți următorul cod dat și uitați-vă la explicație:
#include
#include
struct Persoană {
char Nume [ cincizeci ] ;
int vârstă ;
dubla înălţime ;
} ;
int principal ( ) {
std :: ofstream outFile ( 'people.bin' , std :: ios :: binar ) ;
dacă ( ! outFile. este deschis ( ) ) {
std :: cerr << 'Eroare! Nu se poate deschide fișierul pentru scriere!' << std :: endl ;
întoarcere 1 ;
}
Persoana persoana1 = { „Kalsoom Ilyas” , 25 , 1,75 } ;
Persoana persoana2 = { „Kalsoom Bajwa” , 30 , 1,68 } ;
outFile. scrie ( reinterpret_cast < char *> ( & persoana 1 ) , dimensiunea ( persoana 1 ) ) ;
outFile. scrie ( reinterpret_cast < char *> ( & persoana2 ) , dimensiunea ( persoana2 ) ) ;
outFile. închide ( ) ;
std :: cout << „Înregistrarea persoanei este scrisă cu succes într-un fișier binar.” << std :: endl ;
întoarcere 0 ;
}
Iată o defalcare a codului cu detaliile specifice. Programul începe cu definirea unei structuri personalizate numită „Persoană”. Are trei câmpuri: nume, vârstă și înălțime. Detaliile acestor câmpuri sunt următoarele:
- Nume: Un șir pentru a stoca numele persoanei (până la 50 de caractere)
- vârstă: Un număr întreg pentru a stoca vârsta persoanei
- înălţime: Un dublu pentru a stoca înălțimea persoanei
După definirea structurii „Persoană”, începe funcția principală, care este punctul de intrare al programului. Prima linie din programul principal deschide un fișier numit „people.bin”. Folosim „std::ofstream” pentru a crea un fișier numit „people.bin” pentru scrierea datelor în format binar. Verificarea dacă fișierul se deschide cu succes este foarte importantă. În caz contrar, este afișat un mesaj de eroare și programul se oprește. Prin urmare, cu ajutorul condiției „if” și al funcției is_open(), verificăm dacă fișierul s-a deschis cu succes sau nu.
Aici sunt create cele două obiecte „Persoană”. Definim două variabile, „persoană1” și „persoană2”, de tip „Persoană”. Atribuim variabilei nume, vârstă și valori de înălțime pentru „Kalsoom Ilyas” și „Kalsoom Bajwa”.
Acum că avem datele de scris într-un fișier binar, să realizăm funcția reală cu funcția write(). Folosim „outFile.write” pentru a scrie conținutul fiecărui obiect „Persoană” în fișier. „reinterpret_cast
După ce ați scris datele pe fișier, este foarte important să îl închideți corect, astfel încât nicio dată să nu se piardă din cauza vreunei alte funcții. Folosim outFile.close() pentru a elibera resursele care sunt asociate cu fișierul și pentru a ne asigura că datele sunt scrise cu acuratețe. În cele din urmă, imprimăm un mesaj care confirmă scrierea cu succes a datelor în fișierul binar.
Dacă explicăm acest exemplu în termeni mai simpli, imaginați-vă un caiet special care poate stoca doar o informație despre oameni într-un limbaj secret. Acest cod creează un plan pentru organizarea informațiilor (nume, vârstă, înălțime). Deschide caietul, completează profilurile pentru două persoane, traduce informațiile în limbajul secret și le scrie cu grijă înăuntru. Apoi închide notebook-ul în siguranță, păstrând profilurile pentru utilizare ulterioară. Consultați rezultatul programului care este dat în următorul instantaneu:
Metoda 2: Scrierea numerelor întregi într-un fișier binar
În această metodă, o matrice de numere întregi este scrisă într-un fișier binar numit „integers.bin”. „reinterpret_cast
#include
int principal ( ) {
std :: ofstream outFile ( 'integers.bin' , std :: ios :: binar ) ;
dacă ( ! outFile. este deschis ( ) ) {
std :: cerr << 'Eroare! Nu se poate deschide fișierul pentru scriere!' << std :: endl ;
întoarcere 1 ;
}
int numere [ ] = { 42 , 99 , - 1 , 0 } ;
outFile. scrie ( reinterpret_cast < char *> ( numere ) , dimensiunea ( numere ) ) ;
outFile. închide ( ) ;
std :: cout << „Numerele întregi date au fost scrise cu succes în fișierul binar.” << std :: endl ;
întoarcere 0 ;
}
Iată o defalcare a codului cu detaliile specifice:
„#include
Următoarea linie care este „numere int[] = {42, 99, -1, 0};” definește o matrice numită „numbers” cu numere întregi 42, 99, -1 și 0. „outFile.write(reinterpret_cast
Concluzie
Scrierea fișierelor binare în C++ este o abilitate crucială pentru a gestiona eficient diferitele tipuri de date. În această explorare a scrierii fișierelor binare în C++, am învățat cum poate fi folosită clasa „ofstream” pentru a gestiona eficient datele binare. Indiferent dacă se ocupă cu numere întregi simple sau cu date structurate folosind structuri personalizate, procesul implică deschiderea unui flux de fișiere, scrierea datelor în format binar și apoi închiderea fișierului. Această capacitate oferă dezvoltatorilor C++ flexibilitatea de a lucra cu o gamă variată de tipuri de date binare, contribuind la versatilitatea limbajului în aplicații care variază de la programarea la nivel de sistem până la procesarea multimedia.