打印普通变量,但其结构中的实例正在打印"$"

Normal variable getting printed but its instance in structure is printing "$"

本文关键字:打印 实例 结构 变量      更新时间:2023-10-16

//填充currentTemp和maxTemp 值的函数

  result = smartHlpTemperatureGet( &sh, &currentTemp, &maxTemp );

//在获取后将maxTemp和currentTemp添加到结构中

diskDataT->currentTemp = currentTemp;
diskDataT->maxTemp = maxTemp;

//以下cout正在正确打印值

cout<<"Temperatures - Current"<<currentTemp<<"Max Temperature ="<<maxTemp<<endl;

//将上述变量声明为的结构

  struct diskDataDetailed
{
   uint8_t currentTemp;
   uint8_t maxTemp;
}

//不打印currentTemp 的值

cout<<diskDataT->currentTemp<<endl;

//以上cout 的输出

$

我不明白我哪里错了。

您已经有了正确的值,但由于它的类型是unsigned char(即系统中的uint8_t),因此默认行为是将其打印为字符而不是数字。

正如我上面所说的,用unsigned int替换uint8_t会使事情稍微简单一些。否则,您只需要记住在打印之前将值转换为更宽的类型——+就是这样做的。