Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C++-bestandsafhandeling:bestanden openen, schrijven, lezen en sluiten in C++

Wat is bestandsverwerking in C++?

Bestanden slaan gegevens permanent op een opslagapparaat op. Met bestandsverwerking kan de uitvoer van een programma worden opgeslagen in een bestand. Er kunnen verschillende bewerkingen op de gegevens worden uitgevoerd terwijl ze zich in het bestand bevinden.

Een stream is een abstractie van een apparaat waar invoer-/uitvoerbewerkingen worden uitgevoerd. U kunt een stream weergeven als een bestemming of een bron van tekens van onbepaalde lengte. Dit wordt bepaald door hun gebruik. C++ biedt u een bibliotheek die wordt geleverd met methoden voor bestandsverwerking. Laten we het bespreken.

In deze c++ tutorial leer je:

  • Wat is bestandsverwerking in C++?
  • De fstream-bibliotheek
  • Bestanden openen
  • Hoe bestanden te sluiten
  • Hoe naar bestanden te schrijven
  • Hoe te lezen uit bestanden

De fstream-bibliotheek

De fstream-bibliotheek biedt C++-programmeurs drie klassen voor het werken met bestanden. Deze lessen omvatten:

  • vanstream – Deze klasse vertegenwoordigt een uitvoerstroom. Het wordt gebruikt voor het maken van bestanden en het schrijven van informatie naar bestanden.
  • ifstream – Deze klasse vertegenwoordigt een invoerstroom. Het wordt gebruikt voor het lezen van informatie uit gegevensbestanden.
  • fstream – Deze klasse vertegenwoordigt over het algemeen een bestandsstroom. Het wordt geleverd met ofstream / ifstream-mogelijkheden. Dit betekent dat het bestanden kan maken, naar bestanden kan schrijven en uit gegevensbestanden kan lezen.

De volgende afbeelding maakt het eenvoudig te begrijpen:



Om de bovenstaande klassen van de fstream-bibliotheek te gebruiken, moet u deze als een headerbestand in uw programma opnemen. Natuurlijk gebruikt u de #include preprocessor-richtlijn. U moet ook het iostream-headerbestand opnemen.

Bestanden openen

Voordat u een bewerking op een bestand uitvoert, moet u het eerst openen. Als u naar het bestand moet schrijven, opent u het met fstream- of ofstream-objecten. Als u alleen uit het bestand hoeft te lezen, open het dan met het ifstream-object.

De drie objecten, dat wil zeggen fstream, ofstream en ifstream, hebben de functie open() erin gedefinieerd. De functie heeft deze syntaxis:

open (file_name, mode);
  • De parameter file_name geeft de naam van het te openen bestand aan.
  • De modusparameter is optioneel. Het kan een van de volgende waarden aannemen:
Waarde Beschrijving ios::appDe append-modus. De uitvoer die naar het bestand wordt verzonden, wordt eraan toegevoegd.ios::ateIt opent het bestand voor de uitvoer en verplaatst vervolgens de lees- en schrijfbesturing naar het bestand end.ios::inHet opent het bestand voor een read.ios::outHet opent het bestand voor een write.ios::truncAls een bestand bestaat, moeten de bestandselementen worden afgekapt voordat het wordt geopend.

Het is mogelijk om twee modi tegelijk te gebruiken. Je combineert ze met de | (OF) operator.

Voorbeeld 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;
}

Uitvoer:

Hier is een screenshot van de code:


Code Uitleg:

  1. Voeg het iostream-headerbestand toe aan het programma om de functies ervan te gebruiken.
  2. Voeg het fstream-headerbestand toe aan het programma om de klassen te gebruiken.
  3. Neem de std-naamruimte op in onze code om de klassen te gebruiken zonder deze aan te roepen.
  4. Roep de functie main() aan. De programmalogica zou in zijn lichaam moeten gaan.
  5. Maak een object van de klasse fstream en geef het de naam my_file.
  6. Pas de functie open() toe op het bovenstaande object om een ​​nieuw bestand te maken. De out-modus stelt ons in staat om in het bestand te schrijven.
  7. Gebruik if-statement om te controleren of het maken van bestanden is mislukt.
  8. Bericht om af te drukken op de console als het bestand niet is aangemaakt.
  9. Einde van de hoofdtekst van de if-instructie.
  10. Gebruik een else-statement om aan te geven wat u moet doen als het bestand is gemaakt.
  11. Bericht om af te drukken op de console als het bestand is aangemaakt.
  12. Pas de functie close() toe op het object om het bestand te sluiten.
  13. Einde van de hoofdtekst van het else-statement.
  14. Het programma moet een waarde retourneren als het succesvol is voltooid.
  15. Einde van de hoofdtekst van de functie ()

Bestanden sluiten

Zodra een C++-programma wordt beëindigd, wordt het automatisch

  • spoelt de streams door
  • maakt het toegewezen geheugen vrij
  • sluit geopende bestanden.

Als programmeur moet u echter leren om geopende bestanden te sluiten voordat het programma wordt beëindigd.

De objecten fstream, ofstream en ifstream hebben de functie close() om bestanden te sluiten. De functie heeft deze syntaxis:

void close();

Hoe naar bestanden te schrijven

U kunt rechtstreeks vanuit uw C++-programma naar een bestand schrijven. U gebruikt hiervoor de stream insertion-operator (<<). De tekst die naar het bestand moet worden geschreven, moet tussen dubbele aanhalingstekens staan.

Laten we dit demonstreren.

Voorbeeld 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;
}

Uitvoer :

Hier is een screenshot van de code:


Code Uitleg:

  1. Voeg het iostream-headerbestand toe aan het programma om de functies ervan te gebruiken.
  2. Voeg het fstream-headerbestand toe aan het programma om de klassen te gebruiken.
  3. Neem de std-naamruimte op in het programma om de klassen te gebruiken zonder deze aan te roepen.
  4. Roep de functie main() aan. De programmalogica moet worden toegevoegd aan de hoofdtekst van deze functie.
  5. Maak een instantie van de klasse fstream en geef deze de naam my_file.
  6. Gebruik de functie open() om een ​​nieuw bestand met de naam my_file.txt te maken. Het bestand wordt geopend in de uit-modus om erin te schrijven.
  7. Gebruik een if-statement om te controleren of het bestand niet is geopend.
  8. Tekst om af te drukken op de console als het bestand niet is geopend.
  9. Einde van de hoofdtekst van het if-statement.
  10. Gebruik een else-statement om aan te geven wat u moet doen als het bestand is gemaakt.
  11. Tekst om af te drukken op de console als het bestand is gemaakt.
  12. Schrijf wat tekst naar het aangemaakte bestand.
  13. Gebruik de functie close() om het bestand te sluiten.
  14. Einde van de hoofdtekst van het else-statement.
  15. Het programma moet waarde teruggeven na succesvolle voltooiing.
  16. Einde van de hoofdtekst van de functie main().

Hoe te lezen uit bestanden

U kunt informatie uit bestanden inlezen in uw C++-programma. Dit is mogelijk met behulp van de streamextractie-operator (>>). U gebruikt de operator op dezelfde manier als u deze gebruikt om gebruikersinvoer vanaf het toetsenbord te lezen. In plaats van het cin-object te gebruiken, gebruik je echter het ifstream/fstream-object.

Voorbeeld 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;
}

Uitvoer:

Geen dergelijk bestand

Hier is een screenshot van de code:

Code uitleg:

  1. Voeg het iostream-headerbestand toe aan het programma om de functies ervan te gebruiken.
  2. Voeg het fstream-headerbestand toe aan het programma om de klassen te gebruiken.
  3. Neem de std-naamruimte op in het programma om de klassen te gebruiken zonder deze aan te roepen.
  4. Roep de functie main() aan. De programmalogica moet worden toegevoegd aan de hoofdtekst van deze functie.
  5. Maak een instantie van de klasse fstream en geef deze de naam my_file.
  6. Gebruik de functie open() om een ​​nieuw bestand met de naam my_file.txt te maken. Het bestand wordt geopend in de in-modus om eruit te lezen.
  7. Gebruik een if-statement om te controleren of het bestand niet bestaat.
  8. Tekst om af te drukken op de console als het bestand niet wordt gevonden.
  9. Einde van de hoofdtekst van het if-statement.
  10. Gebruik een else-statement om aan te geven wat je moet doen als het bestand wordt gevonden.
  11. Maak een char-variabele met de naam ch.
  12. Maak een while-lus om de bestandsinhoud te herhalen.
  13. Schrijf/bewaar de inhoud van het bestand in de variabele ch.
  14. Gebruik een if-voorwaarde en eof()-functie, dat wil zeggen het einde van het bestand, om ervoor te zorgen dat de compiler het bestand blijft lezen als het einde niet wordt bereikt.
  15. Gebruik een break-statement om te stoppen met lezen uit het bestand zodra het einde is bereikt.
  16. Druk de inhoud van variabele ch af op de console.
  17. Einde van de tijd body.
  18. Einde van de hoofdtekst van het else-statement.
  19. Roep de functie close() aan om het bestand te sluiten.
  20. Het programma moet waarde teruggeven na succesvolle voltooiing.
  21. Einde van de hoofdtekst van de functie main().

Samenvatting:

  • Met bestandsverwerking kan de uitvoer van een programma worden verzonden en opgeslagen in een bestand.
  • Er kunnen dan een aantal bewerkingen op de gegevens worden toegepast terwijl ze zich in het bestand bevinden.
  • Een stream is een abstractie die een apparaat vertegenwoordigt waarop invoer-/uitvoerbewerkingen worden uitgevoerd.
  • Een stream kan worden weergegeven als bestemming of bron van tekens van onbepaalde lengte.
  • De fstream-bibliotheek biedt C++-programmeurs methoden voor bestandsverwerking.
  • Om de bibliotheek te gebruiken, moet u deze in uw programma opnemen met behulp van de #include preprocessor-richtlijn.

C Taal

  1. C Bestandsverwerking
  2. Hoe RAM vanuit een bestand te initialiseren met TEXTIO
  3. C++ Exception Handling:Try, Catch, Throw Voorbeeld
  4. Hoe opmerkingen te schrijven in C-programmering
  5. Java BufferedReader:hoe een bestand in Java te lezen met voorbeeld
  6. C - Koptekstbestanden
  7. C++-bestanden en -streams
  8. C++ Signaalverwerking
  9. Python - Bestanden I/O
  10. Wat is Micrometer? | Hoe lees je een micrometer af?
  11. Wat is een Mill-bestand?