#include <iostream>
#include <cstdint>
#include <type_traits>
using namespace std;
int main() {
// Niepoprawne wypisywanie i wczytywanie zmiennej typu int_fast8_t
int_fast8_t zmienna_calkowita;
cin >> zmienna_calkowita; //na wejściu liczba 84
cout << static_cast<int>(zmienna_calkowita) << endl; //wartość zmiennej – 56 (kod ASCII znaku '8')
cout << zmienna_calkowita << endl; //wypisany znak '8' – znak o kodzie ASCII 56
// Źródło problemów: int_fast8_t to w tej implementacji signed char
cout << is_same<int_least8_t, signed char>::value << endl;
// Zignorowanie zostawionych na wejściu śmieci, czyli cyfry 4
cin.ignore();
// Ale zmienna typu int_least16_t działa już dobrze
int_least16_t inna_zmienna_calkowita;
cin >> inna_zmienna_calkowita; //na wejściu liczba 84
cout << static_cast<int>(inna_zmienna_calkowita) << endl; //wartość zmiennej - 84
cout << inna_zmienna_calkowita << endl; //poprawne wypisywanie zmiennej
// Działa, gdyż w tej implementacji int_least16_t to zwykły short int
cout << is_same<int_least16_t, short int>::value << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGludD4KI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CgkvLyBOaWVwb3ByYXduZSB3eXBpc3l3YW5pZSBpIHdjenl0eXdhbmllIHptaWVubmVqIHR5cHUgaW50X2Zhc3Q4X3QKCWludF9mYXN0OF90IHptaWVubmFfY2Fsa293aXRhOwoJY2luID4+IHptaWVubmFfY2Fsa293aXRhOyAvL25hIHdlasWbY2l1IGxpY3piYSA4NAoJY291dCA8PCBzdGF0aWNfY2FzdDxpbnQ+KHptaWVubmFfY2Fsa293aXRhKSA8PCBlbmRsOyAvL3dhcnRvxZvEhyB6bWllbm5laiDigJMgNTYgKGtvZCBBU0NJSSB6bmFrdSAnOCcpCgljb3V0IDw8IHptaWVubmFfY2Fsa293aXRhIDw8IGVuZGw7IC8vd3lwaXNhbnkgem5hayAnOCcg4oCTIHpuYWsgbyBrb2R6aWUgQVNDSUkgNTYKCS8vIMW5csOzZMWCbyBwcm9ibGVtw7N3OiBpbnRfZmFzdDhfdCB0byB3IHRlaiBpbXBsZW1lbnRhY2ppIHNpZ25lZCBjaGFyCgljb3V0IDw8IGlzX3NhbWU8aW50X2xlYXN0OF90LCBzaWduZWQgY2hhcj46OnZhbHVlIDw8IGVuZGw7CgkKCS8vIFppZ25vcm93YW5pZSB6b3N0YXdpb255Y2ggbmEgd2VqxZtjaXUgxZttaWVjaSwgY3p5bGkgY3lmcnkgNAoJY2luLmlnbm9yZSgpOwoJCgkvLyBBbGUgem1pZW5uYSB0eXB1IGludF9sZWFzdDE2X3QgZHppYcWCYSBqdcW8IGRvYnJ6ZQoJaW50X2xlYXN0MTZfdCBpbm5hX3ptaWVubmFfY2Fsa293aXRhOwoJY2luID4+IGlubmFfem1pZW5uYV9jYWxrb3dpdGE7IC8vbmEgd2VqxZtjaXUgbGljemJhIDg0Cgljb3V0IDw8IHN0YXRpY19jYXN0PGludD4oaW5uYV96bWllbm5hX2NhbGtvd2l0YSkgPDwgZW5kbDsgLy93YXJ0b8WbxIcgem1pZW5uZWogLSA4NAoJY291dCA8PCBpbm5hX3ptaWVubmFfY2Fsa293aXRhIDw8IGVuZGw7IC8vcG9wcmF3bmUgd3lwaXN5d2FuaWUgem1pZW5uZWoKCS8vIER6aWHFgmEsIGdkecW8IHcgdGVqIGltcGxlbWVudGFjamkgaW50X2xlYXN0MTZfdCB0byB6d3lrxYJ5IHNob3J0IGludAoJY291dCA8PCBpc19zYW1lPGludF9sZWFzdDE2X3QsIHNob3J0IGludD46OnZhbHVlIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==