Kaip skaityti ir rašyti į failą naudojant C ++

How Read Write File C



Šiame straipsnyje mes parodysime, kaip skaityti ir rašyti į failą C ++ programavimo kalba, naudojant kelis pavyzdžius. Norėdami suprasti C ++ failų operacijas, tokias kaip skaitymas ir rašymas, pirmiausia turime suprasti srauto C ++ sąvoką.

Kas yra Srautas?

Srautas yra tiesiog duomenų ar simbolių srautas. Yra du srautų tipai: įvesties ir išvesties srautai. Įvesties srautas naudojamas duomenims skaityti iš išorinio įvesties įrenginio, pvz., Klaviatūros, o išvesties srautas - duomenims įrašyti į išorinį išvesties įrenginį, pvz., Monitorių. Failas gali būti laikomas tiek įvesties, tiek išvesties šaltiniu.









„C ++“ naudoja srautą duomenims siųsti arba gauti iš išorinio šaltinio arba iš jo.



Mes galime naudoti integruotas klases, kad pasiektume įvesties/išvesties srautą, ty „iOS“.





Čia yra C ++ programavimo kalbos srautų klasių hierarchija:



„Cin“ ir „cout“ objektai naudojami atitinkamai skaityti duomenis iš klaviatūros ir rodyti išvestį monitoriuje. Be to, ifstream, kuris reiškia įvesties failo srautą, naudojamas duomenų srautui iš failo skaityti, o ofstream, kuris reiškia išvesties failo srautą, naudojamas duomenų srautui įrašyti į failą.

Faile „iostram.h“ yra visos reikalingos standartinės įvesties/išvesties srautų klasės C ++ programavimo kalba.

Pavyzdžiai

Dabar, kai suprantate srautų pagrindus, aptarsime šiuos pavyzdžius, kurie padės geriau suprasti failų operacijas C ++:

  • 1 pavyzdys: atidarykite ir uždarykite failą
  • 2 pavyzdys: rašykite į failą
  • 3 pavyzdys: skaitykite iš failo
  • 4 pavyzdys: skaitykite ir rašykite į failą
  • 5 pavyzdys: skaitykite ir rašykite dvejetainiame faile

1 pavyzdys: atidarykite ir uždarykite failą

Šioje programos pavyzdyje mes parodysime, kaip atidaryti/sukurti failą ir kaip uždaryti failą naudojant „C ++“. Kaip matote žemiau esančioje programoje, įtraukėme biblioteką, reikalingą failų operacijoms.

Norėdami atidaryti ir uždaryti failą, mums reikia srauto objekto. Tada, norėdami skaityti ar rašyti į failą, turime atidaryti failą. „Fstream“ antraštės failą įtraukėme į 1 eilutę, kad galėtume pasiekti srautą iš klasės.

„MyFile_Handler“ paskelbėme srauto objektu pagrindinėje funkcijoje. Tada mes galime naudoti funkciją open (), kad sukurtume tuščią failą, ir uždaryti () funkciją, kad uždarytume failą.

#įtraukti

naudojant vardų sritisvalandų;

tarptpagrindinis()
{
ofstream myFile_Handler;

// Failas atidarytas
myFile_Handler.atviras(„File_1.txt“);

// Failas Uždaryti
myFile_Handler.Uždaryti();
grįžti 0;
}

Dabar mes sudarysime programą ir išnagrinėsime rezultatus. Kaip matote žemiau esančiame išvesties lange, failas File_1.txt buvo sukurtas paleidus programą. Failo dydis yra lygus nuliui, nes mes neįrašėme jokio failo turinio.

2 pavyzdys: rašykite į failą

Ankstesnėje pavyzdinėje programoje parodėme, kaip atidaryti failą ir kaip jį uždaryti. Dabar mes parodysime, kaip ką nors parašyti faile.

Mes galime rašyti į failą naudodami srauto įterpimo operatorių, t.y.<<. 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.

#įtraukti

naudojant vardų sritisvalandų;

tarptpagrindinis()
{
ofstream myFile_Handler;
// Failas atidarytas
myFile_Handler.atviras(„File_1.txt“);

// Įrašykite į failą
myFile_Handler<< „Tai yra bandomojo failo pavyzdys. ' <<endl;
myFile_Handler<< „Tai yra antroji failo eilutė. ' <<endl;

// Failas Uždaryti
myFile_Handler.Uždaryti();
grįžti 0;
}

Dabar mes sudarysime aukščiau pateiktą programą ir ją vykdysime. Kaip matote žemiau, sėkmingai įrašėme į failą File_1.txt.

3 pavyzdys: skaitykite iš failo

Ankstesniuose pavyzdžiuose parodėme, kaip įrašyti turinį į failą. Dabar perskaitykime turinį iš failo, kurį sukūrėme 2 pavyzdyje, ir parodykime turinį standartiniame išvesties įrenginyje, ty monitoriuje.

Mes naudojame funkciją getline (), kad nuskaitytume visą failo eilutę, o tada cout, kad atspausdintume eilutę monitoriuje.

#įtraukti
#įtraukti
#įtraukti

naudojant vardų sritisvalandų;

tarptpagrindinis()
{
ifstream myFile_Handler;
eilutė myLine;

// Failas atidarytas skaitymo režimu
myFile_Handler.atviras(„File_1.txt“);

jei(myFile_Handler.yra atviras())
{
// Skaitykite failą toliau
tuo tarpu(getline(myFile_Handler, myLine))
{
// spausdinti eilutę ant standartinės išvesties
kaina <<myLine<<endl;
}
// Failas Uždaryti
myFile_Handler.Uždaryti();
}
Kitas
{
kaina << 'Nepavyko atidaryti failo!';
}
grįžti 0;
}

Dabar mes atspausdinsime „File_1.txt“ turinį naudodami šią komandą: cat File_1.txt. Kai surenkame ir vykdome programą, aišku, kad išvestis atitinka failo turinį. Todėl sėkmingai perskaitėme failą ir atspausdinome failo turinį į monitorių.

4 pavyzdys: skaitykite ir rašykite į failą

Iki šiol mes parodėme, kaip atidaryti, skaityti, rašyti ir uždaryti failą. „C ++“ taip pat galime vienu metu skaityti ir rašyti į failą. Norėdami ir skaityti, ir rašyti į failą, turime gauti „fstream“ objektą ir atidaryti failą režimu „ios :: in“ ir „ios :: out“.

Šiame pavyzdyje pirmiausia į failą įrašome tam tikrą turinį. Tada mes perskaitome failo duomenis ir atspausdiname juos monitoriuje.

#įtraukti
#įtraukti
#įtraukti

naudojant vardų sritisvalandų;

tarptpagrindinis()
{
fstream myFile_Handler;
eilutė myLine;

// Failas atidarytas
myFile_Handler.atviras(„File_1.txt“, ios::į |ios::išeiti);

// Patikrinkite, ar failas atidarytas
jei(!myFile_Handler)
{
kaina << 'Failas neatsidarė!';
išeiti(1);
}

// Įrašykite į failą
myFile_Handler<< „1. Tai dar vienas bandomojo failo pavyzdys. ' <<endl;
myFile_Handler<< „2. Tai yra antroji failo eilutė. ' <<endl;

myFile_Handler.ieškoti(ios::maldauti);

// Skaityti failą
jei(myFile_Handler.yra atviras())
{
// Skaitykite failą toliau
tuo tarpu(getline(myFile_Handler, myLine))
{
// spausdinti eilutę ant standartinės išvesties
kaina <<myLine<<endl;
}

// Failas Uždaryti
myFile_Handler.Uždaryti();
}
Kitas
{
kaina << 'Nepavyko atidaryti failo!';
}
myFile_Handler.Uždaryti();
grįžti 0;
}

Dabar mes sudarysime ir vykdysime programą.

5 pavyzdys: skaitykite ir rašykite dvejetainiame faile

Šiame pavyzdyje mes deklaruojame klasę ir tada įrašome objektą į dvejetainį failą. Norėdami supaprastinti šį pavyzdį, paskelbėme Darbuotojų klasę su viešu kintamuoju emp_id. Tada mes perskaitysime dvejetainį failą ir atspausdinsime išvestį į monitorių.

#įtraukti
#įtraukti

naudojant vardų sritisvalandų;

klasėDarbuotojas
{
viešas:
tarptemp_id;
};

tarptpagrindinis()
{
ofstream binOutFile_Handler;
ifstream binInFile_Handler;

Darbuotojas empObj_W, empObj_R;

// Failas atidarytas
binOutFile_Handler.atviras('darbuotojas.dat', ios::išeiti |ios::dvejetainis);

// Patikrinkite, ar failas atidarytas
jei(!binOutFile_Handler)
{
kaina << 'Failas neatsidarė!';
išeiti(1);
}

// Inicijuoti empObj_W
empObj_W.emp_id = 1512 m;

// Įrašykite į failą
binOutFile_Handler.rašyti((anglis *) &empObj_W,dydis(Darbuotojas));
binOutFile_Handler.Uždaryti();

jei(!binOutFile_Handler.Gerai())
{
kaina << 'Klaida rašant dvejetainį failą!' <<endl;
išeiti(2);
}

// Dabar perskaitykime failą darbuotojas.dat
binInFile_Handler.atviras('darbuotojas.dat', ios::į |ios::dvejetainis);
// Patikrinkite, ar failas atidarytas
jei(!binInFile_Handler)
{
kaina << 'Failas neatsidarė!';
išeiti(3);
}

// Skaityti dvejetainio failo turinį
binInFile_Handler.skaityti((anglis *) &empObj_R,dydis(Darbuotojas));
binInFile_Handler.Uždaryti();

jei(!binInFile_Handler.Gerai())
{
kaina << 'Klaida skaitant dvejetainį failą!' <<endl;
išeiti(4);
}

// Spausdinti empObj_R išvestį
kaina << „Informacija apie darbuotoją:“ <<endl;
kaina << 'Darbuotojo ID : ' <<empObj_R.emp_id <<endl;

grįžti 0;
}

Išvada

Failai daugiausia naudojami duomenims saugoti, ir jie vaidina svarbų vaidmenį realiame programavime. Šiame straipsnyje mes parodėme, kaip naudoti įvairias failų operacijas su C ++ programavimo kalba, nagrinėdami kelis pavyzdžius. Be to, parodėme, kaip skaityti ir rašyti duomenis į tekstinius ir dvejetainius failus.