C ++

Jak číst a zapisovat do souboru v C ++

Jak číst a zapisovat do souboru v C ++

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

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.

#zahrnout
pomocí 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.

#zahrnout
pomocí 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ů.

Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...
Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...
Hry Jak používat GameConqueror Cheat Engine v Linuxu
Jak používat GameConqueror Cheat Engine v Linuxu
Tento článek popisuje průvodce používáním cheatovacího modulu GameConqueror v systému Linux. Mnoho uživatelů, kteří hrají hry v systému Windows, často...