【发布时间】:2015-04-24 09:38:16
【问题描述】:
我需要按以下格式发送消息:
"\x9F\x02\x06\x00\x00\x00\x07\x00\x00\x9F\x03\x06\x00\x00\x00\x00\x00\x00\x9A\x03\x15\x04\x24"(十六进制字节)
最后三个十六进制字节代表一个日期。
每次发送此消息时,我都需要从系统(支付终端)检索日期,系统给出的日期是字符串格式:
"150424"
问题是我需要将此日期格式化为十六进制字节,然后将结果与消息的其余部分连接起来!
谁能帮我解决这个问题?
【问题讨论】:
-
你提前知道,bee你要发送的字符串要多长时间?另外,您可以查看 %x 格式字符串 (cplusplus.com/reference/cstdio/printf)
-
那么你想要的日期是binary-coded decimal 代表?
-
24会是\x18不是吗?而15将是\x0F。你试过什么? -
是的,所有其他字节都是固定的,问题是日期每天都在变化,所以我需要对其进行格式化,然后将其与其余字节连接起来。我尝试将 sprintf 与 %x 一起使用,但它给了我十六进制格式的 Ascii 代码,我需要的是十六进制字节格式的相同字符串! @Attilio
-
@SaraSara 为什么你不能?请注意,我说的是
sscanf,而不是scanf。它解析一个字符串,它不从stdin读取。