【发布时间】:2018-02-12 20:37:05
【问题描述】:
我通常使用 sscanf 没有问题,但在这种情况下我迷路了。有人可以帮帮我吗?
char pcStr[12] = {"+CVTER: 6,1\0"};
uint32_t aa,bb;
sscanf(pcStr, "%*[^:] %*2c %zu[^,] %*c %zu", &aa, &bb);
aa = 6 没关系
bb = 未定义的值应该是 1。
为什么会这样?
【问题讨论】:
-
sscanf() 返回什么?如果不是 2,那么 bb 没有被分配到。
-
sscanf() 返回 1 而不是 2 aa 正确填充为 6 但 bb = 0
-
这应该告诉你你的格式字符串没有按照你的想法做。