【发布时间】:2019-12-17 17:54:08
【问题描述】:
我正在使用 sscanf 将 MAC 地址从字符串放入 uint8 数组。由于某种原因,uint8 数组全部为空。
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
std::string mac = "00:00:00:00:00:00";
uint8_t smac[7];
memset(smac, 0, 7);
sscanf(
mac.c_str(),
"%hhu:%hhu:%hhu:%hhu:%hhu:%hhu",
&smac[0],
&smac[1],
&smac[2],
&smac[3],
&smac[4],
&smac[5]
);
std::cout << "string: " << mac << std::endl;
std::cout << "uint8_t: "<< smac;
return 0;
}
【问题讨论】:
-
这能回答你的问题吗? uint8_t can't be printed with cout
-
@UnholySheep 这是打印
uint8_ts 的数组。这是相似的,但不是同一个问题。 -
我认为
sscanf格式字符串在嘲笑我们。它有充分的理由。结果代码被忽略了。 -
@RobertS-ReinstateMonica
iostream可能有#include <cstdio>和using namespace std;将std::sscanf拉入全局命名空间。 -
@JL2210 那只是我说返回码没有用太多字检查。 “hhu hhu hhu hhu hhu hhu”格式字符串让我想起了笑起来的赫特人贾巴。
标签: c++