Zapis danych do pliku C++

kategoria: Zadania z programowania

Umiejętność zapisywania danych do pliku w C++ jest niezbędna, przed przystąpieniem do matury. Pliki można zapisywać w trybie binarnym oraz tekstowym za pomocą strumienia. Ustawiając odpowiednie flagi możemy ustalić czy informacja ma zostać dopisana do pliku czy ma go nadpisać (wyczyścić przed zapisem).

Zapisywanie danych do pliku C++

Oto podstawowe flagi używane podczas zapisu tekstu do pliku:

ios::out | ios::trunc – zawartość pliku zostanie usunięta przed zapisem
ios::out | ios::app – informacja zostanie dopisana na końcu istniejącego pliku

Program otwiera wskazany plik i sprawdza czy nie wystąpiły błędy. Jeżeli wszystko jest w porządku, rozpoczyna się zapis danych za pomocą strumienia. Odpowiednie flagi należy ustawiać podczas otwierania pliku (plik.open) i oddzielać pionowymi kreskami.

Kod w C++ (dopisywanie tekstu)

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

int main()
{
    string linia;
    fstream plik;

    plik.open("plik.txt", ios::out | ios::app);
    if(plik.good() == true)
    {
        plik << "jakiś tekst do dopisania";
        plik.close();
    }

    system("PAUSE");
    return(0);
}

Kod w C++ (czyszczenie pliku przed zapisem)

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

int main()
{
    string linia;
    fstream plik;

    plik.open("plik.txt", ios::out | ios::trunc);
    if(plik.good() == true)
    {
        plik << "nowy tekst";
        plik.close();
    }

    system("PAUSE");
    return(0);
}

Otwieramy plik używając biblioteki fstream. Ponieważ jedynie zapisujemy dane do pliku mogli byśmy użyć biblioteki ofstream. Nazwy pochodzą od języka angielskiego:

  • ifstream = (ang. in file stream) wczytywanie plików
  • ofstream = (ang. out file stream) zapisywania plików
  • fstream połączenie obu powyższych

Na maturze zawsze wymagane jest zapisanie wyników do pliku. Jeżeli wyników jest mało, możesz zapisać je ręcznie. Jeżeli okaże się, że trzeba zapisać 100 linijek, skorzystanie z takiego programu jest niezbędne.