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.
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 |
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);
#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;
}