C++ Bestandsbeheer: Openen, Lezen, Schrijven en Sluiten Beheersen
Wat is Bestandsbeheer in C++?
Bestandsbeheer stelt je in staat om programmagegevens op opslagmedia te behouden. Door programma‑output naar een bestand te sturen, kun je verdere manipulatie, analyse of archivering op die data uitvoeren.
stream is een abstractie die een continue bron of bestemming van karakters vertegenwoordigt. C++ biedt een robuuste fstream-bibliotheek die klassen en functies aanlevert om naadloos met bestanden te werken.
In deze tutorial leer je:
- Definitie van bestandsbeheer in C++
- De
fstream-bibliotheek en haar klassen - Bestanden openen in diverse modi
- Bestanden veilig sluiten
- Data naar bestanden schrijven
- Data uit bestanden lezen
De fstream Bibliotheek
De fstream-bibliotheek levert drie kernklassen:
- ofstream – een output‑stream voor het creëren en schrijven van bestanden.
- ifstream – een input‑stream voor het lezen van bestaande bestanden.
- fstream – een gecombineerde stream die zowel input als output operaties ondersteunt.
Hieronder een snelle visuele referentie:
Om deze klassen te gebruiken, include de fstream-header en, als je naar de console wilt outputten, iostream ook.
Hoe Bestanden te Openen
Voordat enige bestandsoperatie plaatsvindt, moet het bestand geopend worden. Gebruik ofstream voor schrijf‑alleen toegang, ifstream voor lees‑alleen, en fstream voor beide. Elke klasse biedt een open()-member:
open(bestandsnaam, mode);
- bestandsnaam – het pad of de naam van het doelbestand.
- mode – optioneel; specificeert toegangstype. Veelvoorkomende flags zijn:
| Waarde | Beschrijving |
|---|---|
| ios::app | Append‑modus – schrijfoperaties worden aan het einde van het bestand toegevoegd. |
| ios::ate | Openen en direct naar het einde zoeken. |
| ios::in | Openen voor lezen. |
| ios::out | Openen voor schrijven. |
| ios::trunc | Een bestaand bestand inkorten naar nul‑lengte. |
Meerdere flags kunnen gecombineerd worden met de bitwise OR‑operator (|).
Voorbeeld 1: Een Bestand Creëren
#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;
}
Output:

Screenshot van het draaiende programma:

Code‑walkthrough:
- Include
iostreamvoor console I/O. - Include
fstreamvoor file streams. - Gebruik de
std-naamruimte voor beknoptheid. - Instantieer een
fstream-object genaamdmy_file. - Open het bestand in schrijfmodus (
ios::out). - Controleer op succesvolle opening; anders rapporteer falen.
- Bij succes, print bevestiging en sluit het bestand.
- Return
0voor normale beëindiging.
Hoe Bestanden te Sluiten
Hoewel C++ streams automatisch flushen en sluiten bij programma‑einde, is het expliciet sluiten van een bestand na de laatste operatie goede gewoonte.
De close()-member is beschikbaar op fstream, ofstream en ifstream:
void close();
Hoe naar Bestanden te Schrijven
Schrijfoperaties gebruiken de stream‑insertion‑operator (<<). Tekst die opgeslagen moet worden, moet gequoteerd of direct gestreamd worden.
Voorbeeld 2: Tekst Schrijven
#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;
}
Output:

Code screenshot:

Code‑walkthrough:
- Include benodigde headers.
- Creëer een
fstream-object. - Open het doelbestand in schrijfmodus.
- Valideer de filestream.
- Voeg de string "Guru99" in het bestand in.
- Sluit de stream.
- Return
0.
Hoe uit Bestanden te Lezen
Lezen gebruikt de stream‑extractie‑operator (>>) net als cin. De data wordt gestreamd naar variabelen van het juiste type.
Voorbeeld 3: Karakters Lezen
#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;
}
Output:

Screenshot van de draaiende code:

Code‑walkthrough:
- Include
iostreamenfstream. - Open het bestand voor lezen (
ios::in). - Controleer op bestaan; als afwezig, informeer de gebruiker.
- Lees karakters één voor één tot EOF bereikt is.
- Print elk karakter naar de console.
- Sluit de stream.
- Return
0.
Samenvatting
- Bestandsbeheer maakt programmagegevens duurzaam op opslag.
- Streams abstracteren input en output apparaten.
- De
fstream-bibliotheek levert klassen voor alle gangbare bestandsoperaties. - Altijd
<fstream>(en<iostream>indien nodig) bovenaan je bron includen. - Open bestanden met geschikte modi, voer gewenste acties uit, sluit daarna de streams.
C Taal
- Micrometer Uitgelegd: Hoe te Lezen en Gebruiken Deze Precisie Meetinstrument
- Wat Is Een Schruif? Uw Complete Gids voor Het Essentiële Hout- en Metaalbewerkingsgereedschap
- C Bestandsbehandeling: I/O onder de knie krijgen met fopen, fprintf, fread en fseek
- C++ Exception Handling: Praktische Try, Catch, Throw Voorbeelden
- Commentaar in C Beheersen: Duidelijke, Effectieve Notities Schrijven
- C Header-bestanden begrijpen: Typen, gebruik en best practices
- File I/O in C++ Beheersen: Lezen en Schrijven met fstream
- C++ Signaalverwerking onder de knie: Veilige interruptafhandeling en schone programmaterminatie
- FPGA Block RAM initialiseren vanuit tekstbestanden met VHDL's TEXTIO-bibliotheek
- Python Bestands I/O: In- en uitvoerbewerkingen onder de knie krijgen
- Bestanden Lezen in Java met BufferedReader – Een Praktische Gids met Voorbeelden