Podstawowe dane wejściowe / wyjściowe C ++: Cout, Cin, Cerr Przykład

Spisie treści:

Anonim

Co to są strumienie w C ++?

C ++ zapewnia użytkownikom szereg bibliotek, których mogą używać do wykonywania zadań wejścia / wyjścia. Zadania te są wykonywane w postaci sekwencji bajtów, popularnie nazywanych strumieniami.

Strumienie są podzielone na dwa:

Rodzaje strumieni

  • Strumień wejściowy: jest to typ strumienia, w którym bajty przepływają z urządzenia, takiego jak klawiatura, do pamięci głównej.
  • Strumień wyjściowy: jest to rodzaj strumienia, w którym bajty przepływają w przeciwnym kierunku, to znaczy z pamięci głównej, a następnie do urządzenia, takiego jak ekran.

W tym samouczku C ++ nauczysz się:

  • Co to są strumienie w C ++?
  • Jak działają strumienie?
  • Tabela funkcji
  • Pliki nagłówkowe C ++ dla wejścia / wyjścia
  • std :: cout
  • std :: cin
  • std :: cerr
  • std :: clog
  • Obsługa błędów w przypadku strumieni we / wy:

Jak działają strumienie?

Strumienie C ++ działają w następujący sposób:

  1. Najpierw inicjowany jest strumień z odpowiednim typem.
  2. Następnie należy określić, gdzie wystąpi I / O, używając wskaźników get / put.
  3. Po dotarciu do odpowiedniego miejsca w strumieniu możesz wykonywać zadania wejścia i wyjścia, używając odpowiednio operatorów >> i <<.

Tabela funkcji

Poniżej przedstawiono funkcje zawarte w pliku nagłówkowym stream.h:

Klasa Funkcje
Filebuf Ustawia bufory plików do odczytu / zapisu. Zawiera funkcje close () i open ()
fstreambase Jest to klasa bazowa dla klas ifstream, fstream i ofstream. Jego operacje są wspólne dla strumieni plików.
ifstream Jest to klasa strumienia plików wejściowych do zapewniania operacji wejściowych.
ofstream Jest to klasa strumienia plików wyjściowych do dostarczania operacji wyjściowych.
fstream Jest to klasa strumienia wejścia / wyjścia. Obsługuje jednoczesne operacje wejścia / wyjścia.

Pliki nagłówkowe C ++ dla wejścia / wyjścia

C ++ udostępnia trzy biblioteki z funkcjami do wykonywania podstawowych zadań wejścia / wyjścia. Zawierają:

  • Iostream: to skrót od standardowego strumienia wejścia / wyjścia. Ten plik nagłówkowy zawiera definicje obiektów takich jak cin / cout / cerr.
  • Iomanip: To akronim oznaczający manipulatory wejścia / wyjścia. Biblioteka zawiera funkcje, których można używać do manipulowania strumieniami. Zawiera definicje obiektów takich jak setw, setprecision i inne.
  • Fstream: jest to plik nagłówkowy opisujący strumień pliku. Obsługuje dane odczytywane z pliku jako dane wejściowe lub zapisywane w pliku, jako dane wyjściowe.

Słowa kluczowe cin i cout są bardzo popularne w C ++. Służą one odpowiednio do pobierania danych wejściowych i wydruków. Aby z nich skorzystać, musisz dołączyć plik nagłówkowy iostream do swojego programu. Powodem jest to, że są one zdefiniowane w tym pliku nagłówkowym. Niedołączenie pliku nagłówkowego iostream spowoduje błąd. Wynika to z błędu kompilatora C ++ w zrozumieniu znaczenia słów kluczowych.

Główne obiekty zdefiniowane w pliku nagłówkowym iostream to cin, cout, cerr i clog. Porozmawiajmy o nich.

std :: cout

Obiekt cout jest instancją klasy iostream. Służy do generowania danych wyjściowych na standardowym urządzeniu wyjściowym, którym jest zwykle ekran. Jest używany razem z operatorem wstawiania strumienia (<<).

Przykład:

#include using namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}

Wynik:

Oto zrzut ekranu kodu:

Objaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream, w którym zdefiniowano obiekt cout.
  2. Uwzględnij przestrzeń nazw std, abyśmy nie musieli jej wywoływać podczas używania jej klas.
  3. Wywołaj funkcję main (). Kod programu należy dodać w jego treści. Otwierający nawias klamrowy {oznacza początek jego treści.
  4. Utwórz zmienną znakową o nazwie welcome, która będzie zawierać łańcuch Witamy w Guru99.
  5. Wydrukuj wartość łańcucha powitalnego na konsoli. Endl jest słowem kluczowym C ++ oznaczającym koniec linii. Przesuwa kursor, aby rozpocząć drukowanie tekstu w następnej linii.
  6. Program musi zwrócić wartość po pomyślnym wykonaniu.
  7. Koniec treści funkcji main ().

std :: cin

Obiekt cin jest instancją klasy istream. Odczytuje dane wejściowe z urządzenia wejściowego, klawiatury. Zwykle jest używany razem z operatorem ekstrakcji (>>). Obiekt ekstrakcji jest odpowiedzialny za wyodrębnienie danych wprowadzonych za pomocą klawiatury z obiektu cin.

Przykład:

Poniższy przykład ilustruje użycie słowa kluczowego cin w C ++:

#include using namespace std;int main(){int number;cout << "Enter a number:";cin >> number;cout << "\nYou entered: " << number;return 0;}

Wynik:

Oto zrzut ekranu kodu:

Objaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream do naszego programu. Obiekt cin jest zdefiniowany w tym pliku nagłówkowym.
  2. Uwzględnij przestrzeń nazw std, aby używać jej klas. Nie będziesz musiał wywoływać std podczas korzystania z jego klas.
  3. Wywołaj funkcję main (). Kod programu należy dodać w jego treści.
  4. Początek treści programu.
  5. Zadeklaruj zmienną całkowitą o nazwie liczba.
  6. Wydrukuj komunikat na ekranie z monitem o wprowadzenie numeru.
  7. Odczytaj wartość wprowadzoną przez użytkownika na konsoli z klawiatury.
  8. Wydrukuj wartość odczytaną powyżej na konsoli obok innego tekstu.
  9. Program powinien zwrócić wartość, jeśli zostanie wykonany pomyślnie.
  10. Koniec treści funkcji głównej.

std :: cerr

Obiekt cerr tworzy standardowy strumień błędów do wyprowadzania błędów w C ++. Cerr jest instancją klasy ostream. Obiekt cerr nie jest buforowany. Oznacza to, że jest używany, gdy komunikat o błędzie ma być wyświetlany natychmiast.

Ponieważ jest niebuforowany, nie przechowuje komunikatu o błędzie do późniejszego wyświetlenia. Jest używany razem z operatorem wstawiania strumienia (<<).

Przykład:

#include using namespace std;int main() {cerr << "An Error occurred!";return 0;}

Wynik:

Oto zrzut ekranu kodu:

Objaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream, w którym zdefiniowano obiekt cerr.
  2. Uwzględnij przestrzeń nazw std, abyśmy nie musieli jej wywoływać podczas używania jej klas.
  3. Wywołaj funkcję main (). Logikę programu należy dodać w jego treści. Otwierający nawias klamrowy oznacza początek treści funkcji.
  4. Użyj obiektu cerr, aby wydrukować błąd na konsoli.
  5. Program musi zwrócić wartość po pomyślnym wykonaniu.
  6. Koniec treści funkcji głównej.

std :: clog

Obiekt clog jest instancją klasy ostream. Służy do pokazywania błędów na standardowym wyświetlaczu, czyli monitorze. Jest podobny do obiektu cerr, ale jest buforowany. Ponieważ jest buforowany, przechowuje komunikat o błędzie w buforze, dopóki bufor nie zostanie wypełniony / opróżniony. Jest używany razem z operatorem wstawiania strumienia (<<).

Przykład:

#include using namespace std;int main() {clog << "An Error occurred!";return 0;}

Wynik:

Oto zrzut ekranu kodu:

Objaśnienie kodu:

  1. W tym plik nagłówkowy iostream, w którym zdefiniowany jest obiekt clog.
  2. Uwzględnienie przestrzeni nazw std, abyśmy mogli używać jej klas bez wywoływania jej.
  3. Wywołanie funkcji main (). Logikę programu należy dodać w jego treści. {Oznacza początek treści funkcji.
  4. Użyj obiektu zatkania, aby wydrukować błąd na standardowym wyjściu, na monitorze.
  5. Program musi zwrócić wartość po pomyślnym zakończeniu.
  6. Koniec treści funkcji main ().

Obsługa błędów w przypadku strumieni we / wy:

Aby sprawdzić, czy strumień jest prawidłowy, czy nie, możesz użyć go jako wartości logicznej.

Oto przykład:

ifstream file( "myfile.txt" );if ( ! file ){cout << "File NOT opened!" << endl;}

Aby uzyskać więcej informacji o stanie transmisji, możesz skorzystać z następujących funkcji:

  • good () - zwróci wartość true, jeśli wszystko jest w porządku.
  • bad () - zwróci wartość true, jeśli wystąpi błąd krytyczny.
  • fail () - zwróci wartość true po nieudanej operacji na strumieniu.
  • eof () - zwróci wartość true, jeśli osiągnie koniec pliku.

Aby dowiedzieć się, czy określona operacja odczytu / zapisu nie powiodła się, sprawdź wynik odczytu.

Na przykład, aby sprawdzić, czy użytkownik wprowadził prawidłową liczbę całkowitą, wykonaj następujące czynności:

int p;if ( cin >> p ){cout << "Enter valid number" << endl;}

Podsumowanie

  • Zadania wejściowe i wyjściowe w C ++ są wykonywane za pomocą sekwencji bajtów. Bajty nazywane są strumieniami.
  • W strumieniu wejściowym bajty przepływają z urządzenia wejściowego, takiego jak klawiatura, do pamięci głównej.
  • W strumieniu wyjściowym bajty z pamięci głównej są następnie przesyłane do urządzenia wyjściowego, takiego jak monitor.
  • Obiekt cin jest instancją klasy istream. Odczytuje dane wejściowe z urządzenia wejściowego, takiego jak klawiatura.
  • Obiekt cout jest instancją klasy ostream. Generuje dane wyjściowe na urządzeniach wyjściowych, takich jak monitor.
  • Obiekt cerr jest instancją klasy ostream. Wyświetla obiekty błędów na monitorze.
  • Obiekt clog jest instancją klasy ostream. Wyświetla komunikaty o błędach na urządzeniach wyjściowych.
  • Obiekt clog buforuje komunikaty o błędach, podczas gdy obiekt cerr nie.