V tomto článku vám ukážeme, ako čítať a zapisovať do súboru v programovacom jazyku C ++ pomocou niekoľkých príkladov. Aby sme pochopili operácie so súbormi C ++, ako je čítanie a zápis, musíme najskôr porozumieť pojmu stream v C ++.
Čo je to stream?
Stream je jednoducho tok údajov alebo znakov. Existujú dva typy streamov: vstupné toky a výstupné toky. Vstupný tok sa používa na čítanie údajov z externého vstupného zariadenia, ako je klávesnica, zatiaľ čo výstupný tok sa používa na zápis údajov na externé výstupné zariadenie, ako je monitor. Súbor možno považovať za vstupný aj výstupný zdroj.
V C ++ používame stream na odosielanie alebo príjem údajov do alebo z externého zdroja.
Na prístup k vstupnému/výstupnému toku, tj. Ios, môžeme použiť vstavané triedy.
Tu je hierarchia tried prúdov programovacieho jazyka C ++:
Objekty cin a cout slúžia na čítanie údajov z klávesnice a na zobrazenie výstupu na monitore, resp. Okrem toho ifstream, čo znamená vstupný tok súborov, sa používa na čítanie toku údajov zo súboru, a ofstream, ktorý znamená výstupný tok súborov, sa používa na zápis toku údajov do súboru.
Súbor iostram.h obsahuje všetky požadované štandardné triedy vstupných/výstupných prúdov v programovacom jazyku C ++.
Príklady
Teraz, keď porozumiete základom streamov, prediskutujeme nasledujúce príklady, ktoré vám pomôžu lepšie porozumieť operáciám so súbormi v jazyku C ++:
- Príklad 1: Otvorenie a zatvorenie súboru
- Príklad 2: Zápis do súboru
- Príklad 3: Čítanie zo súboru
- Príklad 4: Čítanie a zápis do súboru
- Príklad 5: Čítanie a zápis do binárneho súboru
Príklad 1: Otvorenie a zatvorenie súboru
V tomto ukážkovom programe si ukážeme, ako otvoriť/vytvoriť súbor a ako ho zavrieť v C ++. Ako vidíte v nižšie uvedenom programe, zahrnuli sme knižnicu potrebnú na operácie so súbormi.
Na otvorenie a zatvorenie súboru potrebujeme objekt ofstream. Potom na čítanie alebo zápis do súboru musíme súbor otvoriť. Na riadok číslo 1 sme zahrnuli súbor záhlavia fstream, aby sme mali prístup k triede stream.
MyFile_Handler sme deklarovali ako predmet ofstream vo vnútri hlavnej funkcie. Potom môžeme použiť funkciu open () na vytvorenie prázdneho súboru a funkciu close () na zatvorenie súboru.
#zahrnúťpoužitím priestor mienhodiny;
intHlavná()
{
ofstream myFile_Handler;
// Súbor otvorený
myFile_Handler.otvorené('File_1.txt');
// Súbor sa zavrie
myFile_Handler.Zavrieť();
vrátiť sa 0;
}
Teraz zostavíme program a preskúmame výstup. Ako vidíte v nižšie uvedenom výstupnom okne, súbor File_1.txt bol vytvorený po spustení programu. Veľkosť súboru je nulová, pretože sme do súboru nezapísali žiadny obsah.
Príklad 2: Zápis do súboru
V predchádzajúcom ukážkovom programe sme vám ukázali, ako otvoriť súbor a ako ho zavrieť. Teraz vám ukážeme, ako napísať niečo do súboru.
Do súboru môžeme zapisovať pomocou operátora vkladania prúdu, tj.<<. In this program, we have used the file handler and insertion operator to write two lines in the file. The insertion operator (<<) indicates that we are inserting the string into the output file stream object.
#zahrnúťpoužitím priestor mienhodiny;
intHlavná()
{
ofstream myFile_Handler;
// Súbor otvorený
myFile_Handler.otvorené('File_1.txt');
// Zapis do súboru
myFile_Handler<< „Toto je ukážkový testovací súbor. ' <<endl;
myFile_Handler<< „Toto je druhý riadok súboru. ' <<endl;
// Súbor sa zavrie
myFile_Handler.Zavrieť();
vrátiť sa 0;
}
Teraz skompilujeme vyššie uvedený program a spustíme ho. Ako vidíte nižšie, úspešne sme sa zapísali do súboru File_1.txt.
Príklad 3: Čítanie zo súboru
V predchádzajúcich príkladoch sme vám ukázali, ako zapísať obsah do súboru. Teraz si prečítajme obsah zo súboru, ktorý sme vytvorili v príklade 2, a zobrazme obsah na štandardnom výstupnom zariadení, tj. Na monitore.
Pomocou funkcie getline () prečítame celý riadok zo súboru a potom ho vytlačíme na monitor.
#zahrnúť#zahrnúť
#zahrnúť
použitím priestor mienhodiny;
intHlavná()
{
ifstream myFile_Handler;
reťazec myLine;
// Súbor sa otvorí v režime čítania
myFile_Handler.otvorené('File_1.txt');
keby(myFile_Handler.je otvorené())
{
// Pokračujte v čítaní súboru
kým(getline(myFile_Handler, myLine))
{
// vytlačte riadok na štandardný výstup
náklady <<myLine<<endl;
}
// Súbor sa zavrie
myFile_Handler.Zavrieť();
}
inak
{
náklady << „Súbor sa nedá otvoriť!“;
}
vrátiť sa 0;
}
Teraz vytlačíme obsah súboru File_1.txt pomocou nasledujúceho príkazu: mačka File_1.txt. Keď program skomplikujeme a spustíme, je zrejmé, že výstup zodpovedá obsahu súboru. Preto sme súbor úspešne prečítali a obsah súboru vytlačili na monitor.
Príklad 4: Čítanie a zápis do súboru
Doteraz sme vám ukázali, ako otvoriť, čítať, písať a zatvárať súbory. V C ++ môžeme tiež čítať a zapisovať do súboru súčasne. Aby sme mohli čítať aj zapisovať do súboru, musíme získať objekt fstream a otvoriť súbor v režime ios :: in a ios :: out.
V tomto prípade najskôr do súboru napíšeme nejaký obsah. Potom prečítame údaje zo súboru a vytlačíme ich na monitor.
#zahrnúť#zahrnúť
#zahrnúť
použitím priestor mienhodiny;
intHlavná()
{
fstream myFile_Handler;
reťazec myLine;
// Súbor otvorený
myFile_Handler.otvorené('File_1.txt', ios::v |ios::von);
// Skontrolujte, či sa súbor otvoril
keby(!myFile_Handler)
{
náklady << 'Súbor sa neotvoril!';
východ(1);
}
// Zapis do súboru
myFile_Handler<< „1. Toto je ďalší ukážkový testovací súbor. ' <<endl;
myFile_Handler<< „2. Toto je druhý riadok súboru. ' <<endl;
myFile_Handler.hľadať(ios::žobrať);
// Prečítajte si súbor
keby(myFile_Handler.je otvorené())
{
// Pokračujte v čítaní súboru
kým(getline(myFile_Handler, myLine))
{
// vytlačte riadok na štandardný výstup
náklady <<myLine<<endl;
}
// Súbor sa zavrie
myFile_Handler.Zavrieť();
}
inak
{
náklady << „Súbor sa nedá otvoriť!“;
}
myFile_Handler.Zavrieť();
vrátiť sa 0;
}
Teraz program skompilujeme a spustíme.
Príklad 5: Čítanie a zápis do binárneho súboru
V tomto prípade ideme deklarovať triedu a potom zapíšeme objekt do binárneho súboru. Na zjednodušenie tohto príkladu sme deklarovali triedu Zamestnanec verejnou premennou emp_id. Potom prečítame binárny súbor a vytlačíme výstup na monitor.
#zahrnúť#zahrnúť
použitím priestor mienhodiny;
triedaZamestnanec
{
verejná:
intemp_id;
};
intHlavná()
{
ofstream binOutFile_Handler;
ifstream binInFile_Handler;
Zamestnanec empObj_W, empObj_R;
// Súbor otvorený
binOutFile_Handler.otvorené('employee.dat', ios::von |ios::binárne);
// Skontrolujte, či sa súbor otvoril
keby(!binOutFile_Handler)
{
náklady << 'Súbor sa neotvoril!';
východ(1);
}
// Inicializácia empObj_W
empObj_W.emp_id = 1512;
// Zapis do súboru
binOutFile_Handler.písať((char *) &empObj_W,veľkosť(Zamestnanec));
binOutFile_Handler.Zavrieť();
keby(!binOutFile_Handler.dobre())
{
náklady << 'Pri zapisovaní binárneho súboru sa vyskytla chyba!' <<endl;
východ(2);
}
// Teraz si prečítajme súbor employee.dat
binInFile_Handler.otvorené('employee.dat', ios::v |ios::binárne);
// Skontrolujte, či sa súbor otvoril
keby(!binInFile_Handler)
{
náklady << 'Súbor sa neotvoril!';
východ(3);
}
// Prečítajte si obsah binárneho súboru
binInFile_Handler.čítať((char *) &empObj_R,veľkosť(Zamestnanec));
binInFile_Handler.Zavrieť();
keby(!binInFile_Handler.dobre())
{
náklady << 'Pri čítaní binárneho súboru sa vyskytla chyba!' <<endl;
východ(4);
}
// Vytlačte výstup empObj_R
náklady << „Podrobnosti o zamestnancovi:“ <<endl;
náklady << 'Identifikačné číslo zamestnanca : ' <<empObj_R.emp_id <<endl;
vrátiť sa 0;
}
Záver
Súbory slúžia predovšetkým na ukladanie údajov a hrajú dôležitú úlohu v programovaní v reálnom svete. V tomto článku sme vám ukázali, ako používať rôzne operácie so súbormi v programovacom jazyku C ++, a to pomocou niekoľkých príkladov. Ďalej sme vám ukázali, ako čítať a zapisovať údaje do textových súborov aj do binárnych súborov.