【发布时间】:2016-01-31 01:28:58
【问题描述】:
我有一个由 6 个 16 位整数和 1 个 32 位整数(总共 16 个字节)组成的结构,我试图一次读取一个结构。目前我使用
printf("%.4x %.4x %.4x %.4x %.4x %.4x %.4x\n", );
以 7 个结构成员作为以下参数。
我的输出如下:
0001 0100 0010 0002 0058 0070 464c45
我想将其格式化为:
01 00 00 01 10 00 02 00 58 00 70 00 45 4c 46 00
我一直在到处寻找以尝试找出如何正确格式化它。任何帮助将不胜感激!提前谢谢你!
【问题讨论】:
-
请注意,您所需的输出格式假定为 little-endian 系统(或者,更迂腐地,以字节在 little-endian 系统中自然出现的顺序呈现数据)。这不是一个大问题,但你至少应该模糊地意识到这个问题。发布的解决方案效果很好,并在小端系统上提供了所需的结果——您必须在大端系统上更改所需的输出(到
00 01 01 00 00 10 00 02 00 58 00 70 00 46 4c 45),或者在演示代码中做更多的工作。 -
欢迎来到 Stack Overflow。请注意,在这里说“谢谢”的首选方式是投票赞成好的问题和有用的答案(一旦你有足够的声誉这样做),并接受对你提出的任何问题最有帮助的答案(这也给出了你的声誉小幅提升)。请查看About 页面以及How do I ask questions here? 和What do I do when someone answers my question?
标签: c printing formatting printf byte