Programowanie i algorytmy

Wprowadzanie i wyprowadzanie danych

powrót

Wypisywanie danych na ekranie monitora (standardowe wyjście)

Do wyświetlania danych na ekran służy obiekt zdefiniowany w bibliotece "iostream" cout (out jak wyjście, np. na ekran monitora). Jego konstrukcja jest następująca:

std::cout << "Jakiś ciąg znaków :)";

Jeśli do programu dołączymy linijkę

using namespace std;

która jest omówiona tutaj, zapis możemy skrócić do postaci:

cout << "Jakiś ciąg znaków :)";

Jak łatwo zauważyć, powyższa konstrukcja pozwala wyświetlać napis na ekranie monitora, który jest umieszczony w cudzysłowie. Dodatkowym elementem jest operator wyjścia <<, który pokazuje kierunek przekierowania strumienia znaków. Jest to przeciążony operator przesunięcia bitowego.

Przy wyświetlaniu zmiennych lub wartości działań, zapisujemy je bez użycia cudzysłowu, np.:

cout << b*34 - 45 + a;

Możemy łączyć wyświetlanie ciągów znaków z wartościami zmiennych (lub samymi wyrażeniami) oddzielając każde z nich operatorem << np.:

cout <<"Wartość wyrażenia "<<23*7655<<" jest większa niż "<<22*7654 ;

Na ekranie monitora pojawi się komunikat:

"Wartość wyrażenia 176065 jest większa niż 168388"

 

Prześledźmy przykład wyznaczania sumy dwóch liczb:

#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
int a = 67, b = 56;
 
cout <<"Suma liczb "<< a <<" i "<< b <<" wynosi "<< a+b << endl;
 
system("pause");
return 0;
}
 

 

Wstawianie znaku końca linii (enter) i innych znaków specjalnych

Do wstawienia znaku końca linii (znak enter), możemy wykorzystać dwie metody.

Pierwsza to wpisanie wewnątrz tekstu kombinacji: \n, natomiast druga polega na dopisaniu instrukcji endl (end line), którą wstawiając oddzielamy separatorem strumienia wyjścia. Prześledźmy przykład:

#include<iostream>
#include<cstdlib>
using namespace std;
 
int main()
{
  //wstawienie trzech znaków enter
  cout<<"Ala ma kota\n\na kot ma Ale :)\n"; 
 
  //tak samo jak wyżej
  cout<<"Ala ma kota"<<endl<<endl<<"a kot ma Ale :)"<<endl; 
 
  system("pause");
  return 0;
}
 

 

W pierwszym i drugim przypadku zostanie wstawiony tekst "Ala ma kota", następnie dwa znaki enter, tekst "a kot ma Ale :)" i znak enter.

Innym znakiem specjalnym jest znak tabulacji, który możemy wstawić za pomocą kombinacji \t, lub sygnał z głośniczka dźwiękowego \a.

Do wstawiania znaków poprzez podanie kodów ASCII, możemy posłużyć się następującą kombinacją: \nr, gdzie nr to kod ASCII danego znaku zapisany w systemie ósemkowym.

Prześledźmy przykład:

#include<iostream>
#include<cstdlib>
using namespace std;
 
int main()
{
  //wyświetlenie dziwnego znaczka
  cout<<"To jest dziwny znaczek: \211"<<endl;
 
  //wstawienie dwóch tabulatorów i 
  //dwóch sygnałów z głośniczka systemowego
  cout<<"\t\t\a\a"<<endl;             
 
  system("pause");
  return 0;
}
 

 

Pobieranie danych z klawiatury (standardowe wejście)

Do pobierania danych z klawiatury służy obiekt cin (in jak wejście), który jest zdefiniowany w bibliotece "iostream" ("iostream.h").

Podobnie jak w przypadku obiektu cout mamy do dyspozycji dwie możliwości:

std::cin>>nazwa_zmiennej;

lub po dodaniu linijki

using namespace std;

mamy postać:

cin>>nazwa_zmiennej;

Zauważmy, że w tym przypadku stawiamy znaki przekierowania strumienia w odwrotną stronę ">>". Inaczej mówiąc, strzałeczki pokazują, w którą stronę mają być przekierowane wartości:  do zmiennych.

Jeśli chcemy podać wartości kilku zmiennych, można to zrobić oddzielając zmienne znakiem wejścia strumienia np.:

cin>>pierwsza_zmienna>>druga_zmienna>>trzecia_zmienna;

Prześledźmy przykład: Napisz program, który po podaniu dwóch liczb obliczy ich iloczyn.

 

#include<iostream>
#include<cstdlib>
 
using namespace std;
 
int main()
{   
    int a, b;
    cout<<"Podaj dwie liczby: ";
    cin>>a>>b;
 
    cout<<"Iloczyn liczby "<<a<<" i "<<b<<" wynosi: "<<a*b<<endl;
 
    system("pause");
 
    return 0;
}