cout << a
is printing a value which appears to be garbage to you. It is not garbage actually. It is just a non-printable ASCII character which is getting printed anyway. Note that ASCII character corresponding to 1
is non-printable. You can check whether a
is printable or not using, std::isprint
as:
std::cout << std::isprint(a) << std::endl;
It will print 0
(read: false
) indicating the character is non-printable
--
Anyway, if you want your cout
to print 1
also, then cast a
to this:
cout << static_cast<unsigned>(a) << std::endl;
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…