Ugrás a tartalomhoz

std::fstream

A Wikiszótárból, a nyitott szótárból


Főnév

std::fstream (tsz. std::fstreams)

  1. (informatika)

Az fstream a C++ fájlkezelésért felelős osztálya, amely az #include <fstream> fejléccel érhető el. Az fstream osztály segítségével fájlokat tudunk olvasni, írni és módosítani.

Alapvető használat

Az fstream az ifstream és ofstream osztályokból származik:

  • ifstream (input file stream): fájl beolvasására használható.
  • ofstream (output file stream): fájlba való írásra szolgál.
  • fstream (file stream): egyszerre olvasásra és írásra is használható.

Fájl megnyitása és olvasása (ifstream)

#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::ifstream file("pelda.txt"); // fájl megnyitása olvasásra
    if (!file) {
        std::cerr << "Nem sikerült megnyitni a fájlt!" << std::endl;
        return 1;
    }

    std::string sor;
    while (std::getline(file, sor)) { // soronként olvasás
        std::cout << sor << std::endl;
    }

    file.close(); // fájl bezárása
    return 0;
}

Fájlba írás (ofstream)

#include <iostream>
#include <fstream>

int main() {
    std::ofstream file("kimenet.txt"); // fájl megnyitása írásra
    if (!file) {
        std::cerr << "Nem sikerült létrehozni a fájlt!" << std::endl;
        return 1;
    }

    file << "Ez egy példa szöveg.\n"; // fájlba írás
    file << "Még egy sor a fájlban.\n";

    file.close(); // fájl bezárása
    return 0;
}

Fájl olvasása és írása egyszerre (fstream)

#include <iostream>
#include <fstream>

int main() {
    std::fstream file("adatok.txt", std::ios::in | std::ios::out | std::ios::app);
    if (!file) {
        std::cerr << "Nem sikerült megnyitni a fájlt!" << std::endl;
        return 1;
    }

    file << "Új sor hozzáadása a fájlhoz.\n"; // fájlba írás

    file.seekg(0); // fájlmutató visszaállítása az elejére

    std::string sor;
    while (std::getline(file, sor)) { // fájl kiolvasása
        std::cout << sor << std::endl;
    }

    file.close();
    return 0;
}

Fontos fájlkezelési módok (std::ios flag-ek)

  • std::ios::in – Fájl olvasásra történő megnyitása.
  • std::ios::out – Fájl írásra történő megnyitása (ha létezik, törli a tartalmát).
  • std::ios::app – Írás a fájl végére (nem törli a meglévő tartalmat).
  • std::ios::trunc – Megnyitás és az összes tartalom törlése.
  • std::ios::ate – Megnyitás és a fájl végére ugrás.
  • std::ios::binary – Bináris módú megnyitás (pl. képek, egyéb bináris fájlok esetén).

Ezek kombinálhatók | operátorral, pl.:

std::fstream file("adatok.bin", std::ios::in | std::ios::out | std::ios::binary);