C++ poskytuje knižnicu
Napíšte binárny súbor pomocou C++
Na uloženie údajov do binárneho súboru pomocou C++ sa používa metóda write(). Táto funkcia zapíše špecifikovaný počet bajtov do určeného toku, počnúc umiestnením ukazovateľa „put“. Ak je ukazovateľ „put“ na konci, súbor sa rozšíri. Nové údaje však prepíšu existujúce znaky, ak sa ukazovateľ nachádza v súbore. V prípade chyby počas procesu zápisu je stream označený ako v chybovom stave. Teraz prejdime na príklady, aby sme sa naučili písať do binárneho súboru pomocou niektorých jednoduchých a vstavaných funkcií C++.
Metóda 1: Zápis binárnych súborov so štruktúrovanými údajmi
V mnohých prípadoch možno budete musieť zapísať štruktúrované údaje, ako napríklad vlastné štruktúry, do binárneho súboru. Uvažujme o príklade, ktorý obsahuje záznam osoby, ktorá obsahuje meno, výšku a vek osoby. Pozrite si nasledujúci daný kód a pozrite si vysvetlenie:
#include
#include
štrukturovať Osoba {
char názov [ päťdesiat ] ;
int Vek ;
dvojitý výška ;
} ;
int Hlavná ( ) {
std :: ofstream outFile ( 'people.bin' , std :: ios :: binárne ) ;
ak ( ! outFile. je otvorené ( ) ) {
std :: cerr << 'Chyba! Nie je možné otvoriť súbor na zápis!' << std :: endl ;
vrátiť 1 ;
}
Osoba osoba 1 = { 'Kalsoom Ilyas' , 25 , 1,75 } ;
Osoba osoba 2 = { 'Kalsoom Bajwa' , 30 , 1,68 } ;
outFile. písať ( reinterpret_cast < char *> ( & osoba 1 ) , veľkosť ( osoba 1 ) ) ;
outFile. písať ( reinterpret_cast < char *> ( & osoba2 ) , veľkosť ( osoba2 ) ) ;
outFile. Zavrieť ( ) ;
std :: cout << 'Záznam osoby je úspešne zapísaný do binárneho súboru.' << std :: endl ;
vrátiť 0 ;
}
Tu je rozpis kódu s konkrétnymi podrobnosťami. Program začína definovaním vlastnej štruktúry s názvom „Person“. Má tri polia: meno, vek a výšku. Podrobnosti o týchto poliach sú nasledovné:
- názov: Reťazec na uloženie mena osoby (až 50 znakov)
- Vek: Celé číslo na uloženie veku osoby
- výška: Dvojité na uloženie výšky osoby
Po definovaní štruktúry „Person“ sa spustí hlavná funkcia, ktorá je vstupným bodom programu. Prvý riadok v hlavnom programe otvorí súbor s názvom „people.bin“. Používame „std::ofstream“ na vytvorenie súboru s názvom „people.bin“ na zápis údajov v binárnom formáte. Kontrola, či sa súbor úspešne otvorí, je veľmi dôležitá. V opačnom prípade sa zobrazí chybové hlásenie a program sa zastaví. Preto pomocou podmienky „if“ a funkcie is_open() skontrolujeme, či sa súbor úspešne otvoril alebo nie.
Tu sa vytvoria dva objekty „Osoba“. Definujeme dve premenné „person1“ a „person2“ typu „Person“. Premenným priradíme názov, vek a výšku pre „Kalsoom Ilyas“ a „Kalsoom Bajwa“.
Teraz, keď máme dáta na zápis do binárneho súboru, vykonajte skutočnú funkciu pomocou funkcie write(). Používame „outFile.write“ na zápis obsahu každého objektu „Person“ do súboru. Funkcie „reinterpret_cast
Po zapísaní údajov do súboru je veľmi dôležité ho správne zatvoriť, aby sa žiadne údaje nestratili v dôsledku inej funkcie. Používame outFile.close() na uvoľnenie zdrojov, ktoré sú priradené k súboru, a na zabezpečenie presného zápisu údajov. Nakoniec vytlačíme správu, ktorá potvrdí úspešné zapísanie údajov do binárneho súboru.
Ak si tento príklad vysvetlíme jednoduchšie, predstavme si špeciálny zápisník, do ktorého je možné uložiť iba informácie o ľuďoch v tajnom jazyku. Tento kód vytvára plán na usporiadanie informácií (meno, vek, výška). Otvorí zápisník, vyplní profily pre dvoch ľudí, preloží informácie do tajného jazyka a zapíše ich úhľadne dovnútra. Potom bezpečne zatvorí notebook a zachová profily pre budúce použitie. Pozrite si výstup programu, ktorý je uvedený na nasledujúcej snímke:
Metóda 2: Zápis celých čísel do binárneho súboru
Pri tejto metóde sa pole celých čísel zapíše do binárneho súboru s názvom „integers.bin“. „reinterpret_cast
#include
int Hlavná ( ) {
std :: ofstream outFile ( 'integers.bin' , std :: ios :: binárne ) ;
ak ( ! outFile. je otvorené ( ) ) {
std :: cerr << 'Chyba! Nie je možné otvoriť súbor na zápis!' << std :: endl ;
vrátiť 1 ;
}
int čísla [ ] = { 42 , 99 , - 1 , 0 } ;
outFile. písať ( reinterpret_cast < char *> ( čísla ) , veľkosť ( čísla ) ) ;
outFile. Zavrieť ( ) ;
std :: cout << 'Dané celé čísla boli úspešne zapísané do binárneho súboru.' << std :: endl ;
vrátiť 0 ;
}
Tu je rozpis kódu s konkrétnymi podrobnosťami:
„#include
Ďalší riadok je „int čísla[] = {42, 99, -1, 0};“ definuje pole s názvom „čísla“ s celými číslami 42, 99, -1 a 0. The „outFile.write(reinterpret_cast
Záver
Písanie binárnych súborov v C++ je kľúčovou zručnosťou na efektívne spracovanie rôznych typov údajov. Pri tomto skúmaní písania binárnych súborov v C++ sme sa naučili, ako možno použiť triedu „ofstream“ na efektívne spracovanie binárnych údajov. Či už ide o jednoduché celé čísla alebo štruktúrované údaje pomocou vlastných štruktúr, proces zahŕňa otvorenie toku súborov, zápis údajov v binárnom formáte a potom zatvorenie súboru. Táto schopnosť poskytuje vývojárom C++ flexibilitu pri práci s rôznymi typmi binárnych údajov, čo prispieva k všestrannosti jazyka v aplikáciách, ktoré siahajú od programovania na úrovni systému až po spracovanie multimédií.