1字节整数数据类型

Avi*_*mar 6 c++ int hex char uint8t

我写了以下代码:

 #include <iostream>
 #include <iomanip>
 #include <stdint.h>

 using namespace std;

 int main()
 {
     uint8_t c;

     cin  >> hex >> c;
     cout << dec << c;

     return 0;
 }
Run Code Online (Sandbox Code Playgroud)

但是当我输入c-hex为12时,输出也是c.我期待着12.后来我了解到:

uint8_t通常是一个typedef unsigned char.所以它实际上读c作ASCII 0x63.

是否有一个1字节的整数,在执行I/O而不是char时表现为整数?

NPE*_*NPE 4

从来没听说过。

您可以使用更宽的整数类型进行 I/O,并根据需要使用范围检查和转换。