C++ Tiedostojen käsittely: Tiedostojen avaaminen, kirjoittaminen, lukeminen ja sulkeminen C++

Mitä tiedostojen käsittely sisältää C++?

Tiedostot tallentavat tiedot pysyvästi tallennuslaitteeseen. Tiedostonkäsittelyllä ohjelman tulos voidaan tallentaa tiedostoon. Tiedoille voidaan suorittaa erilaisia ​​toimintoja tiedostossa ollessaan.

Virta on abstraktio laitteesta, jossa syöttö/tulostustoimintoja suoritetaan. Voit esittää virran määränpäänä tai määrittelemättömän pituisten merkkien lähteenä. Tämä määräytyy niiden käytön mukaan. C++ tarjoaa kirjaston, joka sisältää menetelmiä tiedostojen käsittelyyn. Keskustellaan siitä.

Fstream-kirjasto

Fstream-kirjasto tarjoaa C++ ohjelmoijat, joilla on kolme luokkaa tiedostojen käsittelyyn. Näihin luokkiin kuuluvat:

  • ylävirtaan– Tämä luokka edustaa lähtövirtaa. Sitä käytetään tiedostojen luomiseen ja tietojen kirjoittamiseen tiedostoihin.
  • ifstream– Tämä luokka edustaa syöttövirtaa. Sitä käytetään tietojen lukemiseen datatiedostoista.
  • virtaus– Tämä luokka edustaa yleensä tiedostovirtaa. Siinä on offstream/ifstream-ominaisuudet. Tämä tarkoittaa, että se pystyy luomaan tiedostoja, kirjoittamaan tiedostoihin ja lukemaan datatiedostoista.

Seuraava kuva helpottaa ymmärtämistä:

fstream-kirjasto
fstream-kirjasto

Jos haluat käyttää yllä olevia fstream-kirjaston luokkia, sinun on sisällytettävä se ohjelmaan otsikkotiedostona. Tietenkin käytät #include esikäsittelyohjetta. Sinun on myös sisällytettävä iostream-otsikkotiedosto.

Kuinka avata tiedostoja

Ennen kuin teet mitään toimintoa tiedostolle, sinun on ensin avattava se. Jos haluat kirjoittaa tiedostoon, avaa se käyttämällä fstream- tai ofstream-objekteja. Jos sinun tarvitsee vain lukea tiedostosta, avaa se ifstream-objektilla.

Kolmella objektilla, eli fstream, ofstream ja ifstream, on määritetty open()-funktio. Funktio ottaa tämän syntaksin:

open (file_name, mode);
  • Parametri file_name ilmaisee avattavan tiedoston nimen.
  • Mode-parametri on valinnainen. Se voi ottaa minkä tahansa seuraavista arvoista:
Arvo Tuotetiedot
ios:: sovellus Liitä tila. Tiedostoon lähetetty tulos liitetään siihen.
ios::ate Se avaa tiedoston tulostetta varten ja siirtää sitten luku- ja kirjoitussäätimen tiedoston loppuun.
ios::in Se avaa tiedoston lukemista varten.
ios::out Se avaa tiedoston kirjoitusta varten.
ios::trunc Jos tiedosto on olemassa, tiedoston elementit tulee katkaista ennen sen avaamista.

On mahdollista käyttää kahta tilaa samanaikaisesti. Yhdistät ne käyttämällä | (OR) operaattori.

Esimerkki 1:

#include <iostream>
#include <fstream>
using namespace std;
int main() {
	fstream my_file;
	my_file.open("my_file", ios::out);
	if (!my_file) {
		cout << "File not created!";
	}
	else {
		cout << "File created successfully!";
		my_file.close(); 
	}
	return 0;
}

lähtö:

Avaa tiedostot

Tässä on kuvakaappaus koodista:

Avaa tiedostot

Koodin selitys:

  1. Sisällytä iostream-otsikkotiedosto ohjelmaan käyttääksesi sen toimintoja.
  2. Sisällytä fstream-otsikkotiedosto ohjelmaan käyttääksesi sen luokkia.
  3. Sisällytä std-nimiavaruus koodiimme käyttääksesi sen luokkia kutsumatta sitä.
  4. Kutsu main()-funktiota. Ohjelmalogiikan pitäisi mennä sen runkoon.
  5. Luo fstream-luokan objekti ja anna sille nimi my_file.
  6. Käytä open()-funktiota yllä olevaan objektiin luodaksesi uuden tiedoston. Out-tilassa voimme kirjoittaa tiedostoon.
  7. Käytä if-lausetta tarkistaaksesi, epäonnistuiko tiedoston luominen.
  8. Konsolissa tulostettava viesti, jos tiedostoa ei luotu.
  9. if-lauseen rungon loppu.
  10. Käytä else-lausetta ilmoittaaksesi, mitä tehdä, jos tiedosto on luotu.
  11. Konsolissa tulostettava viesti, jos tiedosto on luotu.
  12. Sulje tiedosto käyttämällä objektiin close()-funktiota.
  13. Muu-lauseen rungon loppu.
  14. Ohjelman on palautettava arvo, jos se valmistuu onnistuneesti.
  15. Main()-funktion rungon loppu.

Kuinka sulkea tiedostoja

Kerran C++ ohjelma päättyy automaattisesti

  • huuhtelee virtoja
  • vapauttaa varatun muistin
  • sulkee avatut tiedostot.

Ohjelmoijana sinun tulee kuitenkin oppia sulkemaan avoimet tiedostot ennen ohjelman päättymistä.

Fstream-, ofstream- ja ifstream-objekteissa on close()-toiminto tiedostojen sulkemiseen. Funktio ottaa tämän syntaksin:

void close();

Kuinka kirjoittaa tiedostoihin

Voit kirjoittaa tiedostoon suoraan omalta C++ ohjelmoida. Käytät tähän streamin lisäysoperaattoria (<<). Tiedostoon kirjoitettava teksti tulee laittaa lainausmerkkeihin.

Osoittakaamme tämä.

Esimerkki 2:

#include <iostream>
#include <fstream>
using namespace std;
int main() {
	fstream my_file;
	my_file.open("my_file.txt", ios::out);
	if (!my_file) {
		cout << "File not created!";
	}
	else {
		cout << "File created successfully!";
		my_file << "Guru99";
		my_file.close();
	}
	return 0;
}

lähtö:

Kuinka kirjoittaa tiedostoihin

Tässä on kuvakaappaus koodista:

Kuinka kirjoittaa tiedostoihin

Koodin selitys:

  1. Sisällytä iostream-otsikkotiedosto ohjelmaan käyttääksesi sen toimintoja.
  2. Sisällytä fstream-otsikkotiedosto ohjelmaan käyttääksesi sen luokkia.
  3. Sisällytä std-nimiavaruus ohjelmaan, jotta voit käyttää sen luokkia kutsumatta sitä.
  4. Kutsu main()-funktiota. Ohjelmalogiikka tulisi lisätä tämän funktion runkoon.
  5. Luo fstream-luokan esiintymä ja anna sille nimi oma_tiedosto.
  6. Käytä open()-funktiota luodaksesi uuden tiedoston nimeltä oma_tiedosto.txt. Tiedosto avataan ulostulotilassa siihen kirjoittamista varten.
  7. Käytä if-lausetta tarkistaaksesi, onko tiedostoa avattu.
  8. Konsolissa tulostettava teksti, jos tiedostoa ei avata.
  9. if-lauseen rungon loppu.
  10. Käytä else-lausetta ilmoittaaksesi, mitä tehdä, jos tiedosto on luotu.
  11. Konsolissa tulostettava teksti, jos tiedosto on luotu.
  12. Kirjoita tekstiä luotuun tiedostoon.
  13. Sulje tiedosto käyttämällä close()-funktiota.
  14. Muu-lauseen rungon loppu.
  15. Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
  16. Main()-funktion rungon loppu.

Kuinka lukea tiedostoista

Voit lukea tietoja tiedostoista omaan C++ ohjelmoida. Tämä on mahdollista käyttämällä virranpoistooperaattoria (>>). Käytät operaattoria samalla tavalla kuin käytät sitä lukemaan käyttäjän syötteitä näppäimistöltä. cin-objektin sijaan käytät kuitenkin ifstream/fstream-objektia.

Esimerkki 3:

#include <iostream>
#include <fstream>
using namespace std;
int main() {
	fstream my_file;
	my_file.open("my_file.txt", ios::in);
	if (!my_file) {
		cout << "No such file";
	}
	else {
		char ch;

		while (1) {
			my_file >> ch;
			if (my_file.eof())
				break;

			cout << ch;
		}

	}
	my_file.close();
	return 0;
}

lähtö:

Lue tiedostoista

Ei sellaista tiedostoa

Tässä on kuvakaappaus koodista:

Lue tiedostoista

Koodin selitys:

  1. Sisällytä iostream-otsikkotiedosto ohjelmaan käyttääksesi sen toimintoja.
  2. Sisällytä fstream-otsikkotiedosto ohjelmaan käyttääksesi sen luokkia.
  3. Sisällytä std-nimiavaruus ohjelmaan, jotta voit käyttää sen luokkia kutsumatta sitä.
  4. Kutsu main()-funktiota. Ohjelmalogiikka tulisi lisätä tämän funktion runkoon.
  5. Luo fstream-luokan esiintymä ja anna sille nimi oma_tiedosto.
  6. Käytä open()-funktiota luodaksesi uuden tiedoston nimeltä oma_tiedosto.txt. Tiedosto avataan in-tilassa lukemista varten.
  7. Käytä if-lausetta tarkistaaksesi, ettei tiedostoa ole olemassa.
  8. Konsolissa tulostettava teksti, jos tiedostoa ei löydy.
  9. if-lauseen rungon loppu.
  10. Käytä else-lausetta ilmoittaaksesi, mitä tehdä, jos tiedosto löytyy.
  11. Luo char muuttuja nimeltä ch.
  12. Luo samalla silmukka tiedoston sisällön iterointiin.
  13. Kirjoita/tallenna tiedoston sisältö muuttujaan ch.
  14. Käytä if-ehtoa ja eof()-funktiota eli tiedoston loppua varmistaaksesi, että kääntäjä jatkaa lukemista tiedostosta, jos loppua ei saavuteta.
  15. Käytä break-lausetta lopettaaksesi tiedoston lukemisen, kun loppu on saavutettu.
  16. Tulosta muuttujan ch sisältö konsoliin.
  17. Lopun runko.
  18. Muu-lauseen rungon loppu.
  19. Sulje tiedosto kutsumalla close()-funktiota.
  20. Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
  21. Main()-funktion rungon loppu.

Yhteenveto

  • Tiedostonkäsittelyllä ohjelman tulos voidaan lähettää ja tallentaa tiedostoon.
  • Tietoihin voidaan sitten soveltaa useita toimintoja tiedostossa.
  • Virta on abstraktio, joka edustaa laitetta, jossa syöttö/tulostustoiminnot suoritetaan.
  • Virta voidaan esittää joko määränpäänä tai määräämättömän pituisten merkkien lähteenä.
  • Fstream-kirjasto tarjoaa C++ ohjelmoijat, joilla on menetelmiä tiedostojen käsittelyyn.
  • Jotta voit käyttää kirjastoa, sinun on sisällytettävä se ohjelmaan #include preprocessor -direktiivin avulla.

Tiivistä tämä viesti seuraavasti: