Zapis danych do pliku C++
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).
Spis treści
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.