我有类似的东西:
int8_t value;
value = -27;
std::cout << value << std::endl;
Run Code Online (Sandbox Code Playgroud)
当我运行我的程序时,我得到一个错误的随机值<E5>
输出到屏幕,但当我在gdb中运行该程序并使用p value
它打印出-27,这是正确的值.有没有人有任何想法?
Cat*_*lus 22
因为int8_t
与流相同signed char
,并且char
不被视为数字.投入到例如int16_t
std::cout << static_cast<int16_t>(value) << std::endl;
Run Code Online (Sandbox Code Playgroud)
你会得到正确的结果.