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++ 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:

C++ Bestandsbeheer: Openen, Lezen, Schrijven en Sluiten Beheersen

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:
WaardeBeschrijving
ios::appAppend‑modus – schrijfoperaties worden aan het einde van het bestand toegevoegd.
ios::ateOpenen en direct naar het einde zoeken.
ios::inOpenen voor lezen.
ios::outOpenen voor schrijven.
ios::truncEen 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:

C++ Bestandsbeheer: Openen, Lezen, Schrijven en Sluiten Beheersen

Screenshot van het draaiende programma:

C++ Bestandsbeheer: Openen, Lezen, Schrijven en Sluiten Beheersen

Code‑walkthrough:

  1. Include iostream voor console I/O.
  2. Include fstream voor file streams.
  3. Gebruik de std-naamruimte voor beknoptheid.
  4. Instantieer een fstream-object genaamd my_file.
  5. Open het bestand in schrijfmodus (ios::out).
  6. Controleer op succesvolle opening; anders rapporteer falen.
  7. Bij succes, print bevestiging en sluit het bestand.
  8. Return 0 voor 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:

C++ Bestandsbeheer: Openen, Lezen, Schrijven en Sluiten Beheersen

Code screenshot:

C++ Bestandsbeheer: Openen, Lezen, Schrijven en Sluiten Beheersen

Code‑walkthrough:

  1. Include benodigde headers.
  2. Creëer een fstream-object.
  3. Open het doelbestand in schrijfmodus.
  4. Valideer de filestream.
  5. Voeg de string "Guru99" in het bestand in.
  6. Sluit de stream.
  7. 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:

C++ Bestandsbeheer: Openen, Lezen, Schrijven en Sluiten Beheersen

Screenshot van de draaiende code:

C++ Bestandsbeheer: Openen, Lezen, Schrijven en Sluiten Beheersen

Code‑walkthrough:

  1. Include iostream en fstream.
  2. Open het bestand voor lezen (ios::in).
  3. Controleer op bestaan; als afwezig, informeer de gebruiker.
  4. Lees karakters één voor één tot EOF bereikt is.
  5. Print elk karakter naar de console.
  6. Sluit de stream.
  7. 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

  1. Micrometer Uitgelegd: Hoe te Lezen en Gebruiken Deze Precisie Meetinstrument
  2. Wat Is Een Schruif? Uw Complete Gids voor Het Essentiële Hout- en Metaalbewerkingsgereedschap
  3. C Bestandsbehandeling: I/O onder de knie krijgen met fopen, fprintf, fread en fseek
  4. C++ Exception Handling: Praktische Try, Catch, Throw Voorbeelden
  5. Commentaar in C Beheersen: Duidelijke, Effectieve Notities Schrijven
  6. C Header-bestanden begrijpen: Typen, gebruik en best practices
  7. File I/O in C++ Beheersen: Lezen en Schrijven met fstream
  8. C++ Signaalverwerking onder de knie: Veilige interruptafhandeling en schone programmaterminatie
  9. FPGA Block RAM initialiseren vanuit tekstbestanden met VHDL's TEXTIO-bibliotheek
  10. Python Bestands I/O: In- en uitvoerbewerkingen onder de knie krijgen
  11. Bestanden Lezen in Java met BufferedReader – Een Praktische Gids met Voorbeelden