#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
using std::string;
void print(const vector<uint8_t>& vec) {
for (const auto& element : vec) {
cout << element << " ";
}
cout << endl;
}
void parse_mac_address(std::vector<uint8_t>& result, string const& MACaddress) {
unsigned int bytes[6];
if (std::sscanf(MACaddress.c_str(),
"%02x:%02x:%02x:%02x:%02x:%02x",
&bytes[0], &bytes[1], &bytes[2],
&bytes[3], &bytes[4], &bytes[5]) != 6) {
throw std::runtime_error(MACaddress + std::string(" is an invalid MAC address"));
}
result.assign(&bytes[0], &bytes[6]);
}
int main()
{
string MACaddress = "00:E6:45:84:C2:26";
vector<uint8_t> result;
parse_mac_address(result, MACaddress);
print(result);
}
/*
run:
� E � � &
*/