gpt4 book ai didi

c++ - 将 unsigned char 传递给 cout 时出现意外输出

转载 作者:太空狗 更新时间:2023-10-29 11:39:16 25 4
gpt4 key购买 nike

我的代码中可能存在一个愚蠢的错误。我定义了以下变量:

unsigned char   uEngines;
unsigned short uActiveEngines
unsigned short uDed
....

和其他一些。

在代码的其他地方,我尝试在 gdb 中打印结构并得到以下内容。

$6 = {uEngines  = 12 '\f', uActiveEngines = 4095 .....

1) 我正在尝试使用 cout 输出 uEngines 值,但它只输出一个空格:

cout <<strVariable->uEngines;

2) '\f' 在 gdb 输出中是什么意思?

我的数据类型有问题吗?

最佳答案

它是换页符,是 ASCII 字符集中空格以下的不可打印字符之一。

它意味着在您将它发送到的任何设备上执行“页面前进”操作,假设该设备支持它。

12是如下所示的十进制值:

Char  Dec  Hex  Control Action
---- --- --- --------------
NUL 0 0 Null character
SOH 1 1 Start of heading, = console interrupt
STX 2 2 Start of text, maintenance mode on HP console
ETX 3 3 End of text
EOT 4 4 End of transmission, not the same as ETB
ENQ 5 5 Enquiry, goes with ACK; old HP flow control
ACK 6 6 Acknowledge, clears ENQ logon hand
BEL 7 7 Bell, rings the bell...
BS 8 8 Backspace, works on HP terminals/computers
HT 9 9 Horizontal tab, move to next tab stop
LF 10 a Line Feed
VT 11 b Vertical tab
FF 12 c Form Feed, page eject
CR 13 d Carriage Return
:
:

因为它是一个 char , std::cout << uEngines;会将其输出为字符而不是整数值。如果您希望它作为整数值,请将其转换为一个:

std::cout << (int)uEngines;

关于c++ - 将 unsigned char 传递给 cout 时出现意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9925687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com