Biblioteka IOSTREAM

Biblioteka“iostream” umożliwia wykonywanie operacji na standardowych strumieniach wejścia/wyjścia. Poniżej znajduje się lista dostępnych strumieni:

  1. cin standardowe wejście, z reguły jest to klawiatura,
  2. cout standardowe wyjście, z reguły jest to ekran,
  3. cerr standardowe wyjście dla błędów, z reguły ekran,
  4. 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;
}