C ++

Kuidas lugeda ja kirjutada faili C ++ keeles

Kuidas lugeda ja kirjutada faili C ++ keeles

Selles artiklis me näitame teile, kuidas lugeda ja kirjutada faili C ++ programmeerimiskeeles, kasutades mitmeid näiteid. C ++ failitoimingute nagu lugemine ja kirjutamine mõistmiseks peame kõigepealt mõistma C voo mõistet++.

Mis on voog?

Voog on lihtsalt andmete või märkide voog. Vooge on kahte tüüpi: sisend- ja väljundvood. Sisendvoogu kasutatakse andmete lugemiseks välisest sisendseadmest, näiteks klaviatuurilt, samas kui väljundvoogu kasutatakse andmete kirjutamiseks välisele väljundseadmele, näiteks monitorile. Faili võib pidada nii sisend- kui ka väljundallikaks.

C ++ versioonis kasutame voogu andmete saatmiseks või vastuvõtmiseks välisest allikast või väljast.

Sisend- / väljundvoogu pääsemiseks saame kasutada sisseehitatud klasse, s.t.e., "Ios".

Siin on C ++ programmeerimiskeele vooguklassi hierarhia:

Objekte „cin“ ja „cout“ kasutatakse andmete lugemiseks klaviatuurilt ja väljundi kuvamiseks vastavalt monitoril. Lisaks sellele kasutatakse failivoogude lugemiseks faili „ifstream”, mis tähistab „sisendfailivoogu”, ja andmevoo kirjutamiseks „ofstream”, mis tähistab väljundfailivoogu. faili.

„Iostram.h ”fail sisaldab kõiki nõutavaid standardseid sisend- / väljundvoo klasse C ++ programmeerimiskeeles.

Näited

Nüüd, kui olete voogude põhitõdedest aru saanud, arutame järgmisi näiteid, mis aitavad teil failitoiminguid C ++ -s paremini mõista:

Näide 1: faili avamine ja sulgemine

Selles näidisprogrammis demonstreerime, kuidas faili avada / luua ja kuidas fail C-s sulgeda++. Nagu näete allpool olevas programmis, oleme kaasanud faili toiminguteks vajaliku teegi.

Faili avamiseks ja sulgemiseks vajame voolu objekti. Seejärel peame faili lugemiseks või kirjutamiseks faili avama. Oleme lisanud voo päisefaili reale nr 1, et pääseksime juurde voogude klassile.

Oleme kuulutanud myFile_Handleri põhifunktsiooni seesvoolu objektiks. Seejärel saame tühja faili loomiseks kasutada funktsiooni open () ja faili sulgemiseks funktsiooni close ().

# kaasata
nimeruumi kasutamine std;
int main ()

voog myFile_Handler;
// Fail on avatud
myFile_Handler.avatud ("Fail_1.txt ");
// Fail Sule
myFile_Handler.Sulge();
tagastama 0;

Nüüd koostame programmi ja uurime väljundit. Nagu näete allpool olevast väljundaknast, kuvatakse „File_1.txt ”fail loodi pärast programmi käivitamist. Faili suurus on null, kuna me pole faili sisu kirjutanud.

Näide 2: kirjutage faili

Eelmises näidisprogrammis näitasime teile, kuidas faili avada ja kuidas fail sulgeda. Nüüd näitame teile, kuidas midagi faili kirjutada.

Me võime faili kirjutada voo sisestamise operaatori abil, st.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.

# kaasata
nimeruumi kasutamine std;
int main ()

voog myFile_Handler;
// Fail on avatud
myFile_Handler.avatud ("Fail_1.txt ");
// Kirjutage faili
myFile_Handler << "This is a sample test File. " << endl;
myFile_Handler << "This is the second line of the file. " << endl;
// Fail Sule
myFile_Handler.Sulge();
tagastama 0;

Nüüd koostame ülaltoodud programmi ja käivitame selle. Nagu allpool näete, oleme edukalt kirjutanud faili File_1.txt.

Näide 3: Failist lugemine

Eelmistes näidetes näitasime teile, kuidas sisu faili kirjutada. Nüüd loeme näites 2 loodud faili sisu ja kuvame selle sisu standardväljundseadmes, s.t.e., monitori.

Funktsiooni getline () abil loeme failist kogu rida ja seejärel "cout", et ekraanile rida printida.

# kaasata
# kaasata
# kaasata
nimeruumi kasutamine std;
int main ()

ifstream myFile_Handler;
string myLine;
// Fail avatakse lugemisrežiimis
myFile_Handler.avatud ("Fail_1.txt ");
kui (myFile_Handler.on avatud())

// Jätkake faili lugemist
while (getline (myFile_Handler, myLine))

// printige rida standardväljundile
cout << myLine << endl;

// Fail Sule
myFile_Handler.Sulge();

muud

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

tagastama 0;

Nüüd printime faili File_1 sisu.txt järgmise käsu abil: kassifail_1.txt. Kui oleme programmi kompileerinud ja käivitanud, on selge, et väljund vastab faili sisule. Seetõttu oleme faili edukalt lugenud ja faili sisu monitorile printinud.

Näide 4: faili lugemine ja kirjutamine

Siiani oleme teile näidanud, kuidas faili avada, lugeda, kirjutada ja sulgeda. C ++ - s saame samal ajal ka faili lugeda ja faili kirjutada. Nii faili lugemiseks kui ka faili kirjutamiseks peame hankima voogesituse objekti ja avama fail režiimis „ios :: in” ja „ios :: out”.

Selles näites kirjutame kõigepealt osa failist. Seejärel loeme failist andmed läbi ja printime monitorile.

# kaasata
# kaasata
# kaasata
nimeruumi kasutamine std;
int main ()

fstream myFile_Handler;
string myLine;
// Fail on avatud
myFile_Handler.avatud ("Fail_1.txt ", ios :: sisse | ios :: välja);
// Kontrollige, kas fail on avatud
kui (!myFile_Handler)

cout << "File did not open!";
väljapääs (1);

// Kirjutage faili
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 :: kerjama);
// Loe faili
kui (myFile_Handler.on avatud())

// Jätkake faili lugemist
while (getline (myFile_Handler, myLine))

// printige rida standardväljundile
cout << myLine << endl;

// Fail Sule
myFile_Handler.Sulge();

muud

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

myFile_Handler.Sulge();
tagastama 0;

Nüüd koostame ja täidame programmi.

Näide 5: kahendfaili lugemine ja kirjutamine

Selles näites kuulutame välja klassi ja kirjutame objekti seejärel kahendfaili. Selle näite lihtsustamiseks oleme deklareerinud klassi Employee avaliku muutujaga emp_id. Seejärel loeme binaarfaili ja printime väljundi monitorile.

# kaasata
# kaasata
nimeruumi kasutamine std;
klassi Töötaja

avalik:
int emp_id;
;
int main ()

ofstream binOutFile_Handler;
ifstream binInFile_Handler;
Töötaja empObj_W, empObj_R;
// Fail on avatud
binOutFile_Handler.avatud ("Töötaja.dat ", ios :: välja | ios :: binaarne);
// Kontrollige, kas fail on avatud
kui (!binOutFile_Handler)

cout << "File did not open!";
väljapääs (1);

// Inicialiseeri empObj_W
empObj_W.emp_id = 1512;
// Kirjutage faili
binOutFile_Handler.kirjuta ((char *) & empObj_W, sizeof (Töötaja));
binOutFile_Handler.Sulge();
kui (!binOutFile_Handler.hea ())

cout << "Error occured during writing the binary file!" << endl;
väljapääs (2);

// Nüüd loeme töötajat.dat-fail
binInFile_Handler.avatud ("Töötaja.dat ", ios :: sisse | ios :: binaarne);
// Kontrollige, kas fail on avatud
kui (!binInFile_Handler)

cout << "File did not open!";
väljapääs (3);

// Loe binaarfaili sisu
binInFile_Handler.loe ((char *) & empObj_R, sizeof (töötaja));
binInFile_Handler.Sulge();
kui (!binInFile_Handler.hea ())

cout << "Error occured during reading the binary file!" << endl;
väljapääs (4);

// Prindi empObj_R väljund
cout << "Details of the Employee : " << endl;
cout << "Employee ID : " << empObj_R.emp_id << endl;
tagastama 0;

Järeldus

Faile kasutatakse peamiselt andmete salvestamiseks ja neil on oluline roll reaalses maailmas programmeerimisel. Selles artiklis näitasime teile, kuidas kasutada erinevaid failitoiminguid C ++ programmeerimiskeelega, töötades läbi mitu näidet. Lisaks näitasime teile, kuidas lugeda ja kirjutada andmeid nii tekst- kui ka binaarfailidesse.

Kasulikud tööriistad Linuxi mängijatele
Kui teile meeldib Linuxis mänge mängida, on tõenäoline, et olete mängukogemuse parandamiseks kasutanud selliseid rakendusi ja utiliite nagu Wine, Lutr...
HD Remastered Games Linuxile, millel pole kunagi varem Linuxi väljalaset olnud
Paljud mängude arendajad ja kirjastajad pakuvad frantsiisi eluea pikendamiseks välja vanade mängude HD-remasteri. Palun fännid, kes soovivad ühilduvus...
Kuidas kasutada AutoKeyt Linuxi mängude automatiseerimiseks
AutoKey on Linuxi ja X11 töölaua automatiseerimise utiliit, mis on programmeeritud Python 3, GTK ja Qt. Selle skriptimise ja MACRO funktsionaalsuse ab...