#include <iostream>
#include <cstdint>
#include <cstdio>
using namespace std;
int main()
{
uint16_t ii;
std::cin >> ii;
printf("%d\n", ii);
}
当我输入5
时,输出也是5
。但是,当我将ii
的类型更改为uint8_t
时,我不会5
而是53
,而5
似乎是{{1}}的ASCII值。这是预期的吗?
答案 0 :(得分:11)
uint8_t
被允许(但不是必需)成为char
的typedef(如果它恰好是无符号的)或unsigned char
。并且输入的是字符而不是数字。所以这是有效但不是必需的行为。