Ako čítať a zapisovať do súboru v C ++

How Read Write File C



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.