V tomto článku vám ukážeme, jak pomocí několika příkladů číst a zapisovat do souboru v programovacím jazyce C ++. Abychom porozuměli operacím se soubory C ++, jako je čtení a zápis, musíme nejprve pochopit koncept streamu v jazyce C++.
Co je to Stream?
Proud je jednoduše tok dat nebo znaků. Existují dva typy proudů: vstupní proudy a výstupní proudy. Vstupní proud se používá ke čtení dat z externího vstupního zařízení, jako je klávesnice, zatímco výstupní proud se používá k zápisu dat do externího výstupního zařízení, jako je monitor. Soubor lze považovat za vstupní i výstupní zdroj.
V C ++ používáme stream k odesílání nebo přijímání dat do nebo z externího zdroje.
Můžeme použít vestavěné třídy pro přístup k vstupnímu / výstupnímu proudu, tj.E., „Ios“.
Tady je hierarchie tříd proudu programovacího jazyka C ++:
Objekty „cin“ a „cout“ se používají ke čtení dat z klávesnice a k zobrazení výstupu na monitoru. Navíc „ifstream“, což je zkratka pro „stream vstupního souboru“, se používá ke čtení proudu dat ze souboru, a „ofstream“, což znamená „proud výstupního souboru“, se používá k zápisu proudu dat do souboru.
„Iostram.Soubor h ”obsahuje všechny požadované standardní třídy vstupních / výstupních proudů v programovacím jazyce C ++.
Příklady
Nyní, když rozumíte základům streamů, probereme následující příklady, které vám pomohou lépe pochopit operace se soubory v C ++: Now that you understand the basics of streams, we will discuss the following examples to help you to better understand file operations in C ++:
- Příklad 1: Otevření a zavření souboru
- Příklad 2: Zápis do souboru
- Příklad 3: Čtení ze souboru
- Příklad 4: Čtení a zápis do souboru
- Příklad 5: Čtení a zápis do binárního souboru
Příklad 1: Otevření a zavření souboru
V tomto ukázkovém programu si ukážeme, jak otevřít / vytvořit soubor a jak jej zavřít v C++. Jak vidíte v níže uvedeném programu, zahrnuli jsme knihovnu potřebnou pro operace se soubory.
K otevření a zavření souboru potřebujeme objekt ofstream. Pak, abychom mohli číst nebo zapisovat do souboru, musíme soubor otevřít. Zahrnuli jsme soubor záhlaví fstream na řádek číslo 1, abychom měli přístup k třídě ofstream.
MyFile_Handler jsme deklarovali jako objekt ofstream uvnitř hlavní funkce. Poté můžeme použít funkci open () k vytvoření prázdného souboru a funkci close () k uzavření souboru.
#zahrnoutpomocí jmenného prostoru std;
int main ()
ofstream myFile_Handler;
// Soubor otevřen
myFile_Handler.otevřít („Soubor_1.txt ");
// Soubor zavřít
myFile_Handler.zavřít();
návrat 0;
Nyní sestavíme program a prozkoumáme výstup. Jak vidíte ve výstupním okně níže, „File_1.Soubor txt ”byl vytvořen po spuštění programu. Velikost souboru je nulová, protože jsme do souboru nenapsali žádný obsah.
Příklad 2: Zápis do souboru
V předchozím ukázkovém programu jsme vám ukázali, jak otevřít soubor a jak jej zavřít. Nyní vám ukážeme, jak něco napsat do souboru.
Můžeme zapisovat do souboru pomocí operátoru vložení proudu, tj.E., "<<”. 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.
#zahrnoutpomocí jmenného prostoru std;
int main ()
ofstream myFile_Handler;
// Soubor otevřen
myFile_Handler.otevřít („Soubor_1.txt ");
// Zápis do souboru
myFile_Handler << "This is a sample test File. " << endl;
myFile_Handler << "This is the second line of the file. " << endl;
// Soubor zavřít
myFile_Handler.zavřít();
návrat 0;
Nyní sestavíme výše uvedený program a provedeme ho. Jak vidíte níže, úspěšně jsme se zapsali do souboru File_1.txt.
Příklad 3: Čtení ze souboru
V předchozích příkladech jsme si ukázali, jak zapisovat obsah do souboru. Nyní si přečtěte obsah ze souboru, který jsme vytvořili v příkladu 2, a zobrazme obsah na standardním výstupním zařízení, tj.E., obrazovka.
Pomocí funkce getline () přečteme celý řádek ze souboru a poté „cout“ vytiskneme řádek na monitoru.
#zahrnout#zahrnout
#zahrnout
pomocí jmenného prostoru std;
int main ()
ifstream myFile_Handler;
řetězec myLine;
// Soubor se otevře v režimu čtení
myFile_Handler.otevřít („Soubor_1.txt ");
if (myFile_Handler.je otevřeno())
// Pokračujte ve čtení souboru
while (getline (myFile_Handler, myLine))
// vytiskne řádek na standardní výstup
cout << myLine << endl;
// Soubor zavřít
myFile_Handler.zavřít();
jiný
cout << "Unable to open the file!";
návrat 0;
Nyní vytiskneme obsah souboru_1.txt pomocí následujícího příkazu: cat File_1.txt. Jakmile program zkompilujeme a provedeme, je jasné, že výstup odpovídá obsahu souboru. Proto jsme úspěšně přečetli soubor a vytiskli jeho obsah na monitor.
Příklad 4: Čtení a zápis do souboru
Zatím jsme vám ukázali, jak otevřít, číst, psát a zavřít soubor. V C ++ můžeme také číst a zapisovat do souboru současně. Chcete-li číst i zapisovat do souboru, musíme získat objekt fstream a otevřít soubor v režimu „ios :: in“ a „ios :: out“.
V tomto příkladu nejprve do souboru zapíšeme nějaký obsah. Poté načteme data ze souboru a vytiskneme je na monitor.
#zahrnout#zahrnout
#zahrnout
pomocí jmenného prostoru std;
int main ()
fstream myFile_Handler;
řetězec myLine;
// Soubor otevřen
myFile_Handler.otevřít („Soubor_1.txt ", ios :: in | ios :: out);
// Zkontrolujte, zda se soubor otevřel
li(!myFile_Handler)
cout << "File did not open!";
výstup (1);
// Zápis do souboru
myFile_Handler << "1. This is another sample test File. " << endl;
myFile_Handler << "2. This is the second line of the file. " << endl;
myFile_Handler.hledat (ios :: prosit);
// Číst soubor
if (myFile_Handler.je otevřeno())
// Pokračujte ve čtení souboru
while (getline (myFile_Handler, myLine))
// vytiskne řádek na standardní výstup
cout << myLine << endl;
// Soubor zavřít
myFile_Handler.zavřít();
jiný
cout << "Unable to open the file!";
myFile_Handler.zavřít();
návrat 0;
Nyní program zkompilujeme a provedeme.
Příklad 5: Čtení a zápis do binárního souboru
V tomto příkladu deklarujeme třídu a poté zapíšeme objekt do binárního souboru. Pro zjednodušení tohoto příkladu jsme deklarovali třídu Employee s veřejnou proměnnou emp_id. Poté načteme binární soubor a vytiskneme výstup na monitor.
#zahrnout#zahrnout
pomocí jmenného prostoru std;
třída Zaměstnanec
veřejnost:
int emp_id;
;
int main ()
ofstream binOutFile_Handler;
ifstream binInFile_Handler;
Zaměstnanec empObj_W, empObj_R;
// Soubor otevřen
binOutFile_Handler.otevřít ("Zaměstnanec.dat ", ios :: out | ios :: binary);
// Zkontrolujte, zda se soubor otevřel
li(!binOutFile_Handler)
cout << "File did not open!";
výstup (1);
// Inicializace empObj_W
empObj_W.emp_id = 1512;
// Zápis do souboru
binOutFile_Handler.write ((char *) & empObj_W, sizeof (Employee));
binOutFile_Handler.zavřít();
li(!binOutFile_Handler.dobrý())
cout << "Error occured during writing the binary file!" << endl;
výstup (2);
// Nyní si přečtěte zaměstnance.datový soubor
binInFile_Handler.otevřít ("Zaměstnanec.dat ", ios :: in | ios :: binary);
// Zkontrolujte, zda se soubor otevřel
li(!binInFile_Handler)
cout << "File did not open!";
výstup (3);
// Číst obsah binárního souboru
binInFile_Handler.read ((char *) & empObj_R, sizeof (Employee));
binInFile_Handler.zavřít();
li(!binInFile_Handler.dobrý())
cout << "Error occured during reading the binary file!" << endl;
výstup (4);
// Vytiskne výstup empObj_R
cout << "Details of the Employee : " << endl;
cout << "Employee ID : " << empObj_R.emp_id << endl;
návrat 0;
Závěr
Soubory se používají hlavně k ukládání dat a hrají důležitou roli v programování v reálném světě. V tomto článku jsme vám ukázali, jak pomocí různých příkladů používat různé operace se soubory v programovacím jazyce C ++. Dále jsme vám ukázali, jak číst a zapisovat data do textových i binárních souborů.