Kurs maturalny z języka angielskiego!
kurs-maturalny-jezyk-angielski

PROGRAMOWANIE I ALGORYTMY

Zajęcia maturalne z informatyki
Olimpiada Informatyczna Juniorów
    Prowadzący: Marcin Kasprowicz
  • właściciel serwisu algorytm.edu.pl
  • wrzesień 2024 — start zajęć
  • czytaj więcej

Zapis do pliku


powrot

Otwarcie pliku w trybie do zapisu

Do czytania pliku musimy stworzyć obiekt na podstawie klasy $$ofstream$$, która przechowuje wszystkie metody i atrybuty operujące na plikach do zapisu. W tym przypadku możemy dopatrzeć się analogii takiej jak w wyświetlaniu danych na ekranie. W tym celu użyjemy konstrukcji

cout<<dane;

Zamiast obiektu $$cout$$ użyjemy własnego obiektu stworzonego na bazie klasy $$ofstream$$:

ofstream jakas_nazwa("ścieżka do pliku"); 

lub

ofstream jakas_nazwa;
jakas_nazwa.open("ścieżka do pliku");

Zapis informacji wygląda następująco:

ofstream jakas_nazwa("ścieżka do pliku");
          jakas_nazwa<<informacja;

Należy pamiętać, że jeśli plik nie istnieje to zostanie on utworzony, natomiast jeśli istnieje i są w nim już zapisane jakieś informacje, to zostaną one nadpisane.

Przykład.

Napiszemy program, który wczyta z klawiatury dwie liczby całkowite i zapisze je wraz z ich sumą w postaci:

pierwsza_liczba + druga_liczba = suma

do pliku dane.txt.

#include<iostream>
#include<fstream>

using namespace std;

int main()
{
	int a, b;
	cout<<"Podaj dwie liczby: ";
	cin>>a>>b;
	
	ofstream zapis("dane.txt");
	
	zapis<<a<<" + "<<b<<" = "<<a+b;
	
	zapis.close(); //obowiązkowo należy zamknąć plik
	
	return 0;
}

Jeśli podamy 5 i 10 to w pliku dane.txt pojawi się taki ciąg:

5 + 10 = 15

Dopisywanie informacji do pliku

Jeśli chcemy dopisać dane na koniec pliku to musimy to zadeklarować przy jego otwarciu ustawiając tryb na $$ios::base::app$$:

ofstream jakas_nazwa("ścieżka", ios_base::app); 

 Przykład.

#include<iostream>
#include<fstream>

using namespace std;

int main()
{
	char *tekst = "Ala ma kota\n";
	
	ofstream zapis("dane.txt");//obiekt tworzymy tylko raz
	zapis<<tekst;
	zapis.close(); //obowiązkowo należy zamknąć plik
	
	zapis.open("dane.txt", ios_base::app);
	zapis<<tekst;
	zapis.close();
	
	return 0;
}