Biblioteka IOSTREAM
Biblioteka“iostream” umożliwia wykonywanie operacji na standardowych strumieniach wejścia/wyjścia. Poniżej znajduje się lista dostępnych strumieni:
- cin standardowe wejście, z reguły jest to klawiatura,
- cout standardowe wyjście, z reguły jest to ekran,
- cerr standardowe wyjście dla błędów, z reguły ekran,
- clog w pełni buforowana wersja cerr.
Aby skorzystać z biblioteki należy ją dołączyć do naszego programu:
#include <iostream >
Od tej pory możemy skorzystać z możliwości standardowych strumieni wejścia/wyjścia:
std::cin, std::cout, std::cerr, std::clog.
Jeśli nie chcemy wpisywać za każdym razem“std::nazwa_strumienia”, możemy wpisać dodatkową informację dla kompilatora:
using namespace std;
od tego momentu możemy wpisywać:“cin”,“cout”, zamiast“std::cin”,“std::cout”.
Obiekt cin umożliwia odczyt ze standardowego wejścia:
int a;
cin >>a;
Powyższy kod umożliwia wczytanie liczby całkowitej ze standardowego strumienia do zmiennej“a”. Kierunek przesyłania informacji określają znaki“>>”.
Obiekt cout umożliwia wysłanie informacji do standardowego strumienia.
int a=1;
cout << “Wartość zmiennej a=” << a;
cout <<“ ”;
Powyższy kod spowoduje wysłanie do standardowego strumienia tekstu“Wartość zmiennej a=”, następnie do strumienia zostanie wysłana liczba jeden, a w ostatniej linii do strumienia zostanie przekazany kod sterujący wyświetlaniem danych powodujący przejście do następnej linii. Za pomocą przekierowania“<<” można w jednej linii przekazać do strumienia kilka informacji. Dzięki temu w prosty sposób możemy łączyć tekst statyczny z wartościami zmiennych w programie.
Formatowanie strumienia wyjściowego
Wyświetlając wyniki obliczeń często zachodzi konieczność sformatowania wyprowadzanych danych. Jedną z możliwości jest ustawienie precyzji wyświetlania danych:
cout.precision(2);
Powyższe polecenie spowoduje ograniczenie wyświetlania liczb do 2 znaków. Przykładowo liczba 43.25 zostanie obcięta do 43.
cout.precision(2);
cout.setf(ios::fixed);
Powyższe polecenie spowoduje ustawienie wyświetlania liczb rzeczywistych z dokładnością do dwóch miejsc po przecinku.
Biblioteka FSTREAM
Biblioteka fstream umożliwia wykonywanie operacji wejścia/wyjścia na plikach. Otrzymujemy narzędzia do odczytu, zapisu, przemieszczania się wewnątrz struktury pliku. Poniższy przykładowy program kopiuje zawartość pliku tekstowego o nazwie plik_zrodlowy.txt do pliku o nazwie plik_docelowy.txt.
#include <fstream>
using namespace std;
int main ()
{
char * buffer;
long size;
ifstream infile ("plik_zrodlowy.txt",ifstream::binary);
//deklaracja strumienia wejściowego i przypisanie go do “plik_zrodlowy.txt”
ofstream outfile ("plik_docelowy.txt",ofstream::binary);
//deklaracja strumienia wyjściowego i przypisanie go do “plik_docelowy.txt”
infile.seekg(0,ifstream::end); //Pobieranie informacji o długości pliku
size=infile.tellg();
infile.seekg(0);
buffer = new char [size]; //allokacja pamięci na bufor danych
infile.read (buffer,size); //odczyt zawartości całego pliku
outfile.write (buffer,size); //zapis do pliku docelowego
delete[] buffer; //zwolnienie pamięci bufora
outfile.close();
infile.close();
return 0;
}