Ich schrieb den folgenden Code:1 Byte Integer-Datentyp
#include <iostream>
#include <iomanip>
#include <stdint.h>
using namespace std;
int main()
{
uint8_t c;
cin >> hex >> c;
cout << dec << c;
return 0;
}
Aber wenn ich Eingang c
— hex 12 — der Ausgang ist auch c
. Ich hatte erwartet, 12. Später erfuhr ich, dass:
uint8_t
ist in der Regel ein typedef fürunsigned char
. Es liest alsoc
als ASCII 0x63.
Gibt es eine 1-Byte-Ganzzahl, die sich beim Ausführen von I/O und nicht als Zeichen als Integer verhält?
Nein, es nicht ist, das ist eine Schande –