
//
// To jest przykładowy kod z rozdziału 3.9.2 "Konwersje niebezpieczne dla typów" książki
// "Programowanie. Teoria i praktyka z wykorzystaniem C++" Bjarne'a Stroustrupa.
//

#include "std_lib_facilities.h"

//------------------------------------------------------------------------------

int main()
{
    double d =0;
    while (cin>>d) {   // Powtarza poniższe instrukcje tak długo,
                       // jak długo są wpisywane liczby.
        int i = d;     // Próba wciśnięcia liczby typu double do typu int.
        char c = i;    // Próba wciśnięcia liczby typu int do typu char.
        int i2 = c;    // Pobranie wartości całkowitoliczbowej odpowiadającej znakowi.
        cout << "d==" << d              // Oryginalna liczba typu double.
             << " i=="<< i              // Po konwersji na typ int.
             << " i2==" << i2           // Wartość int typu char.
             << " char(" << c << ")\n"; // Typ char.
    }

    double x = 2.7;
    // dużo kodu
    int y = x;         // y otrzymuje wartość 2
    int a = 1000;
    char b = a;        // b otrzyma wartość –24 (na niektórych komputerach)
}

//------------------------------------------------------------------------------
