Przeczytaj
Załóżmy, że tworzymy program do obliczania pola figur geometrycznych. Napisaliśmy już większość kodu, jednak wciąż nie możemy zaimplementować rozwiązania, które pozwalałoby na komunikację z użytkownikiem.
Strumienie
Chcąc rozwiązać ten problem, musimy poznać strumienie. Można je sobie wyobrazić jako dane płynące od źródła do celu. Istnieje wiele celów i źródeł strumieni. Może to być ekran, klawiatura, plik lub zewnętrzne urządzenie.
W języku C++ wyróżniamy trzy typy strumieni:
strumienie wejściowestrumienie wejściowe (wczytują dane),
strumienie wyjściowestrumienie wyjściowe (wypisują dane),
strumienie uniwersalne (wczytują i wypisują dane).
Strumienie predefiniowane
Aby uniknąć sytuacji, w której za każdym razem musimy odpowiednio programować strumień, aby wyświetlał podane wartości w odpowiednim formacie, w C++ mamy możliwość użycia strumieni predefiniowanych. W tym celu dołączamy bibliotekę iostream
. Jest to biblioteka standardowa dla języka programowania C++. Obsługuje operacje wejścia i wyjścia oraz ma kilka innych zastosowań. Bibliotekę dołączymy do kodu, dodając na jego początku linijkę #include <iostream>.
W języku C++ mamy do dyspozycji cztery strumienie predefiniowane. Nas najbardziej interesują dwa z nich, czyli:
std::cout
– strumień wyjścia,std::cin
– strumień wejścia.
Warto jednak również wspomnieć o dwóch pozostałych:
std::cerr
– strumień błędów,std::clog
– strumień błędów, szczególnie wydajny w przypadku dużej ilości danych.
Strumienie te są rzadziej używane. Często wiązane są z plikiem na dysku, do którego przesyłają dane o błędach, które wystąpiły.
Operatory <<
i >>
W zależności od strumienia, którego chcemy użyć, zastosujemy odpowiednio <<
lub >>
. Jak się za chwilę przekonamy, wskazują one – podobnie jak strzałki – kierunek przepływu strumienia: jeśli chcemy pobrać dane, stosujemy >>
, a w przypadku, gdy chcemy je wypisać – używamy operatora <<
.
Strumień wyjścia – std::cout
Stosujemy za każdym razem, gdy chcemy coś wyświetlić, np. wynik programu obliczającego wartość wyrażenia.
Załóżmy, że chcemy, aby nasz program wyświetlił wynik obliczenia wzoru na pole trójkąta przy danych, które wcześniej zdefiniowaliśmy w programie. Kod wyglądałby następująco:
Program ten wypisałby 25
, czyli pole trójkąta o podstawie 5
i wysokości 10
.
Strumień wejścia – std::cin
Strumień wejścia jest stosowany w przypadku, gdy chcemy wczytać dane. Możemy za jego pomocą wprowadzić dane, które mają zostać użyte we wzorze.
Załóżmy, że chcemy, aby nasz program policzył pole prostokąta, korzystając z danych wprowadzonych przez użytkownika. Kod wyglądałby następująco:
Teraz połączymy operacje wejścia i wyjścia, aby stworzyć program, który poprosi użytkownika o wprowadzenie danych, a następnie obliczy pole trapezu i wypisze wynik.
W ten sposób zastosowaliśmy oba strumienie w jednym kodzie. Tekst wprowadziliśmy, poprzedzając i kończąc go cudzysłowem – jest to łańcuch znaków.
Kod ten można jednak uprościć. Zamiast wielokrotnie powtarzać instrukcje std::cout
i std::cin
, możemy raz jeszcze użyć odpowiednio operatora <<
lub >>
.
Wprowadzanie danych do programu może zostać zapisane w następujący sposób:
Po wpisaniu instrukcji std::cin
możemy w tym samym wierszu wielokrotnie użyć operatora >>
do wprowadzenia kolejnych zmiennych.
Taką samą metodę można wykorzystać, używając cout
.
Słownik
strumień używany do wprowadzania danych do programu
strumień używany do wyprowadzania danych z programu