C ++

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

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

Šiame straipsnyje mes parodysime, kaip skaityti ir rašyti failą C ++ programavimo kalba, naudojant kelis pavyzdžius. Norėdami suprasti C ++ failo 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 dviejų tipų srautai: įvesties srautai ir išvesties srautai. Įvesties srautas naudojamas duomenims nuskaityti iš išorinio įvesties įrenginio, pavyzdžiui, klaviatūros, o išvesties srautas naudojamas duomenims įrašyti į išorinį išvesties įrenginį, pvz., Monitorių. Failas gali būti laikomas tiek įvesties, tiek išvesties šaltiniu.

C ++ versijoje mes naudojame srautą duomenims siųsti arba gauti iš išorinio šaltinio arba iš jo.

Mes galime naudoti įmontuotas klases, kad galėtume pasiekti įvesties / išvesties srautą, t.e., „Ios“.

Čia yra C ++ programavimo kalbos srauto klasės hierarchija:

Objektai „cin“ ir „cout“ naudojami duomenims nuskaityti iš klaviatūros ir išvestims rodyti atitinkamai monitoriuje. Be to, „ifstream“, kuris reiškia „įvesties failų srautas“, naudojamas nuskaityti duomenų srautą iš failo, o „ofstream“, kuris reiškia „išvesties failų srautas“, naudojamas duomenų srautui rašyti. į bylą.

„Iostram.h “faile yra visos reikalingos standartinės įvesties / išvesties srauto klasės C ++ programavimo kalba.

Pavyzdžiai

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

1 pavyzdys: atidarykite ir uždarykite failą

Šioje programos pavyzdyje mes parodysime, kaip atidaryti / sukurti failą ir kaip uždaryti failą C++. Kaip matote toliau pateiktoje programoje, įtraukėme biblioteką, reikalingą failų operacijoms.

Norint atidaryti ir uždaryti failą, mums reikia srauto objekto. Tada, norėdami skaityti ar rašyti failą, turime atidaryti failą. Mes įtraukėme srauto antraštės failą į eilutę Nr. 1, kad galėtume patekti į srauto klasę.

Mes paskelbėme „myFile_Handler“ kaip srauto objektą pagrindinės funkcijos viduje. Tada galime naudoti funkciją open (), kad sukurtume tuščią failą, o uždarymo () funkciją, kad uždarytume failą.

# įtraukti
naudojant vardų sritį std;
int main ()

iš „myFile_Handler“;
// Failas atidarytas
„myFile_Handler“.atidaryti („File_1.txt ");
// Failas uždaryti
„myFile_Handler“.Uždaryti();
grąžinti 0;

Dabar sukursime programą ir išnagrinėsime išvestį. Kaip matote išvesties lange žemiau, „File_1.txt “failas buvo sukurtas vykdant programą. Failo dydis yra lygus nuliui, nes faile neparašėme jokio turinio.

2 pavyzdys: Rašymas į failą

Ankstesnėje programos pavyzdyje mes parodėme, kaip atidaryti failą ir kaip uždaryti failą. Dabar mes parodysime, kaip ką nors įrašyti į failą.

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

# įtraukti
naudojant vardų sritį std;
int main ()

iš „myFile_Handler“;
// Failas atidarytas
„myFile_Handler“.atidaryti („File_1.txt ");
// Rašykite į failą
„myFile_Handler“ << "This is a sample test File. " << endl;
„myFile_Handler“ << "This is the second line of the file. " << endl;
// Failas uždaryti
„myFile_Handler“.Uždaryti();
grąžinti 0;

Dabar sukompiliuosime aukščiau nurodytą programą ir ją vykdysime. Kaip matote žemiau, mes sėkmingai parašėme failą „File_1“.txt.

3 pavyzdys: skaitykite iš failo

Ankstesniuose pavyzdžiuose mes parodėme, kaip įrašyti turinį į failą. Dabar perskaitykime failo, kurį sukūrėme 2 pavyzdyje, turinį ir rodykime turinį standartiniame išvesties įrenginyje, t.e., monitorius.

Mes naudojame getline () funkciją, kad nuskaitytume visą failo eilutę, o tada „cout“ atspausdinti liniją monitoriuje.

# įtraukti
# įtraukti
# įtraukti
naudojant vardų sritį std;
int main ()

„ifstream myFile_Handler“;
eilutė myLine;
// Failas atidarytas skaitymo režimu
„myFile_Handler“.atidaryti („File_1.txt ");
jei (myFile_Handler.atidarytas())

// Toliau skaitykite failą
while („getline“ („myFile_Handler“, „myLine“))

// atspausdinti eilutę ant standartinės išvesties
cout << myLine << endl;

// Failas uždaryti
„myFile_Handler“.Uždaryti();

Kitas

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

grąžinti 0;

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

4 pavyzdys: skaitykite ir rašykite į failą

Iki šiol parodėme, kaip atidaryti, skaityti, rašyti ir uždaryti failą. C ++ sistemoje mes taip pat galime skaityti ir rašyti į failą tuo pačiu metu. Norėdami skaityti ir rašyti į failą, turime gauti pagrindinį objektą ir atidaryti failą „ios :: in“ ir „ios :: out“ režimais.

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

# įtraukti
# įtraukti
# įtraukti
naudojant vardų sritį std;
int main ()

srautas „myFile_Handler“;
eilutė myLine;
// Failas atidarytas
„myFile_Handler“.atidaryti („File_1.txt ", ios :: in | ios :: out);
// Patikrinkite, ar failas atidarytas
jei (!„myFile_Handler“)

cout << "File did not open!";
išėjimas (1);

// Rašykite į failą
„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 :: elgeta);
// Perskaitykite failą
jei (myFile_Handler.atidarytas())

// Toliau skaitykite failą
while („getline“ („myFile_Handler“, „myLine“))

// atspausdinti eilutę ant standartinės išvesties
cout << myLine << endl;

// Failas uždaryti
„myFile_Handler“.Uždaryti();

Kitas

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

„myFile_Handler“.Uždaryti();
grąžinti 0;

Dabar mes sukursime ir vykdysime programą.

5 pavyzdys: skaitykite ir rašykite į dvejetainį failą

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

# įtraukti
# įtraukti
naudojant vardų sritį std;
klasės Darbuotojas

vieša:
int emp_id;
;
int main ()

iš srauto binOutFile_Handler;
ifstream binInFile_Handler;
Darbuotojas empObj_W, empObj_R;
// Failas atidarytas
binOutFile_Handler.atidaryti ("Darbuotojas.dat ", ios :: out | ios :: dvejetainis);
// Patikrinkite, ar failas atidarytas
jei (!binOutFile_Handler)

cout << "File did not open!";
išėjimas (1);

// Inicijuoti empObj_W
empObj_W.emp_id = 1512;
// Rašykite į failą
binOutFile_Handler.rašyti ((char *) & empObj_W, sizeof (Darbuotojas));
binOutFile_Handler.Uždaryti();
jei (!binOutFile_Handler.Gerai())

cout << "Error occured during writing the binary file!" << endl;
išėjimas (2);

// Dabar perskaitykime darbuotoją.dat failas
binInFile_Handler.atidaryti ("Darbuotojas.dat ", ios :: in | ios :: dvejetainis);
// Patikrinkite, ar failas atidarytas
jei (!binInFile_Handler)

cout << "File did not open!";
išėjimas (3);

// Perskaitykite dvejetainio failo turinį
binInFile_Handler.skaityti ((char *) & empObj_R, sizeof (Darbuotojas));
binInFile_Handler.Uždaryti();
jei (!binInFile_Handler.Gerai())

cout << "Error occured during reading the binary file!" << endl;
išėjimas (4);

// Spausdinti empObj_R išvestį
cout << "Details of the Employee : " << endl;
cout << "Employee ID : " << empObj_R.emp_id << endl;
grąžinti 0;

Išvada

Failai daugiausia naudojami duomenims saugoti, ir jie vaidina svarbų vaidmenį programuojant realiame pasaulyje. Šiame straipsnyje mes parodėme, kaip naudoti įvairias failų operacijas su C ++ programavimo kalba, atlikdami keletą pavyzdžių. Be to, mes parodėme, kaip skaityti ir rašyti duomenis tiek į tekstinius, tiek į dvejetainius failus.

Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...
10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...
5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...