C ++

Fájlok olvasása és írása C ++ nyelven

Fájlok olvasása és írása C ++ nyelven

Ebben a cikkben bemutatjuk, hogyan olvashat és írhat egy fájlt a C ++ programozási nyelven, több példa segítségével. A C ++ fájlműveletek, például az olvasás és az írás megértéséhez először meg kell értenünk a C folyam fogalmát++.

Mi az a Stream?

Az adatfolyam egyszerűen adatok vagy karakterek áramlása. Kétféle adatfolyam létezik: bemeneti és kimeneti adatfolyamok. Egy bemeneti adatfolyamot használunk az adatok beolvasására egy külső beviteli eszközről, például egy billentyűzetről, míg egy kimeneti adatfolyam segítségével adatokat írunk a külső kimeneti eszközre, például egy monitorra. A fájl mind bemeneti, mind kimeneti forrásnak tekinthető.

A C ++ - ban adatfolyamot használunk külsõ adatok küldéséhez vagy fogadásához külsõ forrásból vagy onnan.

Beépített osztályokat használhatunk egy bemeneti / kimeneti adatfolyam eléréséhez, azaz.e., „Ios”.

Itt található a C ++ programozási nyelv stream osztály hierarchiája:

A „cin” és a „cout” objektumok az adatok kiolvasására szolgálnak a billentyűzetről, és a kimenet megjelenítésére a monitoron, ill. Ezenkívül az „ifstream”, amely az „input file stream” kifejezés, egy adatfolyam olvasására szolgál egy fájlból, és az „ofstream”, amely az „output file stream” kifejezésre vonatkozik, az adatfolyam írására szolgál. fájlba.

Az „iostram.h ”fájl tartalmazza az összes szükséges szabványos bemeneti / kimeneti adatfolyam osztályt a C ++ programozási nyelven.

Példák

Most, hogy megértette a folyamok alapjait, a következő példákat vitatjuk meg, hogy jobban megértsük a fájlműveleteket a C ++ nyelven:

1. példa: Fájl megnyitása és bezárása

Ebben a példaprogramban bemutatjuk, hogyan lehet megnyitni / létrehozni egy fájlt, és hogyan lehet bezárni a fájlt C-ben++. Amint az alábbi programban láthatja, felvettük a fájlműveletekhez szükséges könyvtárat.

Egy fájl megnyitásához és bezárásához szükségünk van egy ofstream objektumra. Ezután egy fájl olvasásához vagy írásához meg kell nyitnunk a fájlt. A fstream fejlécfájlt felvettük az 1. sorba, hogy hozzáférhessünk az ofstream osztályhoz.

A myFile_Handler-t deklaráltuk a fő funkción belüli áramlási objektumként. Ezután az open () függvény segítségével létrehozhatunk egy üres fájlt, a close () függvénnyel pedig a fájlt.

#include
névtér használata std;
int main ()

ofstream myFile_Handler;
// Fájl megnyitása
myFile_Handler.open ("Fájl_1.txt ");
// Fájl bezárása
myFile_Handler.Bezárás();
visszatér 0;

Most összeállítjuk a programot és megvizsgáljuk a kimenetet. Amint az alábbi kimeneti ablakban láthatja, a „File_1.txt ”fájl a program futtatása után jött létre. A fájl mérete nulla, mivel nem írtunk semmilyen tartalmat a fájlba.

2. példa: Írjon fájlba

Az előző példa programban megmutattuk, hogyan kell megnyitni egy fájlt, és hogyan kell bezárni a fájlt. Most megmutatjuk, hogyan írhat valamit egy fájlba.

Írhatunk egy fájlba a stream beillesztés operátor segítségével, azaz.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.

#include
névtér használata std;
int main ()

ofstream myFile_Handler;
// Fájl megnyitása
myFile_Handler.open ("Fájl_1.txt ");
// Írjon a fájlba
myFile_Handler << "This is a sample test File. " << endl;
myFile_Handler << "This is the second line of the file. " << endl;
// Fájl bezárása
myFile_Handler.Bezárás();
visszatér 0;

Most összeállítjuk és végrehajtjuk a fenti programot. Amint az alább látható, sikeresen írtunk a File_1 fájlba.txt.

3. példa: Olvasás fájlból

Az előző példákban megmutattuk, hogyan kell tartalmat írni egy fájlba. Most olvassuk el a 2. példa által létrehozott fájl tartalmát, és jelenítsük meg a tartalmat a szokásos kimeneti eszközön, azaz.e., A képernyő.

A getline () függvény segítségével a teljes sort kiolvassuk a fájlból, majd a „cout” segítségével kinyomtatjuk a sort a monitoron.

#include
#include
#include
névtér használata std;
int main ()

ifstream myFile_Handler;
string myLine;
// Fájl megnyitása Olvasási módban
myFile_Handler.open ("Fájl_1.txt ");
ha (myFile_Handler.nyitva van())

// Olvassa tovább a fájlt
while (getline (myFile_Handler, myLine))

// nyomtassa ki a sort a standard kimenetre
cout << myLine << endl;

// Fájl bezárása
myFile_Handler.Bezárás();

más

cout << "Unable to open the file!";

visszatér 0;

Most kinyomtatjuk a File_1 tartalmát.txt a következő paranccsal: cat File_1.txt. Miután lefordítottuk és lefuttattuk a programot, egyértelmű, hogy a kimenet megegyezik a fájl tartalmával. Ezért sikeresen elolvastuk a fájlt, és kinyomtattuk a fájl tartalmát a monitorra.

4. példa: Fájlok olvasása és írása

Eddig megmutattuk, hogyan lehet megnyitni, olvasni, írni és bezárni egy fájlt. A C ++ - ban egyszerre olvashatunk és fájlba is írhatunk. Fájlba történő olvasáshoz és íráshoz egy fstream objektumot kell beszereznünk, és meg kell nyitnunk a fájlt „ios :: in” és „ios :: out” módban.

Ebben a példában először írunk némi tartalmat a fájlba. Ezután kiolvassuk a fájl adatait, és kinyomtatjuk a monitorra.

#include
#include
#include
névtér használata std;
int main ()

fstream myFile_Handler;
string myLine;
// Fájl megnyitása
myFile_Handler.open ("Fájl_1.txt ", ios :: be | ios :: ki);
// Ellenőrizze, hogy a fájl megnyílt-e
ha(!myFile_Handler)

cout << "File did not open!";
kilépés (1);

// Írjon a fájlba
myFile_Handler << "1. This is another sample test File. " << endl;
myFile_Handler << "2. This is the second line of the file. " << endl;
myFile_Handler.seekg (ios :: könyörgés);
// Olvassa el a fájlt
ha (myFile_Handler.nyitva van())

// Olvassa tovább a fájlt
while (getline (myFile_Handler, myLine))

// nyomtassa ki a sort a standard kimenetre
cout << myLine << endl;

// Fájl bezárása
myFile_Handler.Bezárás();

más

cout << "Unable to open the file!";

myFile_Handler.Bezárás();
visszatér 0;

Most összeállítjuk és végrehajtjuk a programot.

5. példa: Olvasson és írjon bináris fájlba

Ebben a példában deklarálunk egy osztályt, majd az objektumot bináris fájlba írjuk. A példa egyszerűsítése érdekében deklaráltuk az Employee osztályt az emp_id nyilvános változóval. Ezután elolvassuk a bináris fájlt, és kinyomtatjuk a kimenetet a monitorra.

#include
#include
névtér használata std;
osztály Munkavállaló

nyilvános:
int emp_id;
;
int main ()

ofstream binOutFile_Handler;
ifstream binInFile_Handler;
Alkalmazott empObj_W, empObj_R;
// Fájl megnyitása
binOutFile_Handler.nyitott ("Alkalmazott.dat ", ios :: out | ios :: bináris);
// Ellenőrizze, hogy a fájl megnyílt-e
ha(!binOutFile_Handler)

cout << "File did not open!";
kilépés (1);

// Inicializálja az empObj_W fájlt
empObj_W.emp_id = 1512;
// Írjon a fájlba
binOutFile_Handler.write ((char *) & empObj_W, sizeof (Alkalmazott));
binOutFile_Handler.Bezárás();
ha(!binOutFile_Handler.jó())

cout << "Error occured during writing the binary file!" << endl;
kijárat (2);

// Most olvassuk el az alkalmazottat.dat fájl
binInFile_Handler.nyitott ("Alkalmazott.dat ", ios :: in | ios :: bináris);
// Ellenőrizze, hogy a fájl megnyílt-e
ha(!binInFile_Handler)

cout << "File did not open!";
kijárat (3);

// Olvassa el a bináris fájl tartalmát
binInFile_Handler.read ((char *) & empObj_R, sizeof (Alkalmazott));
binInFile_Handler.Bezárás();
ha(!binInFile_Handler.jó())

cout << "Error occured during reading the binary file!" << endl;
kijárat (4);

// Az empObj_R kimenetének kinyomtatása
cout << "Details of the Employee : " << endl;
cout << "Employee ID : " << empObj_R.emp_id << endl;
visszatér 0;

Következtetés

A fájlokat elsősorban az adatok tárolására használják, és fontos szerepet játszanak a valós programozásban. Ebben a cikkben bemutattuk, hogyan lehet különféle fájlműveleteket használni a C ++ programozási nyelvvel, számos példán keresztül. Továbbá megmutattuk, hogyan kell adatokat olvasni és írni mind szöveges, mind bináris fájlokba.

A legjobb parancssori játékok Linuxhoz
A parancssor nem csak a legnagyobb szövetséges a Linux használatakor, hanem a szórakozás forrása is lehet, mert sok olyan szórakoztató játék lejátszás...
A legjobb Gamepad Mapping alkalmazások Linuxhoz
Ha egy tipikus billentyűzet és egér beviteli rendszer helyett szeretnél játékokat játszani Linuxon egy játékvezérlővel, van néhány hasznos alkalmazás ...
Hasznos eszközök Linux játékosok számára
Ha szeretsz Linuxon játszani, akkor valószínű, hogy olyan alkalmazásokat és segédprogramokat használtál, mint a Wine, a Lutris és az OBS Studio a játé...