存储unsigned char?

时间:2015-04-11 06:26:46

标签: c++ char store unsigned

我正在尝试获取用户的mac地址,然后将其存储在字符串中。我已经将mac地址get函数关闭了,但是我在将mac地址的最终值存储到字符串时遇到了一些麻烦。有人可以帮忙吗?

#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <rpc.h>
#include <rpcdce.h>
#include <string>
#pragma comment(lib, "rpcrt4.lib")

using namespace std;


static void PrintMACaddress(unsigned char MACData[])
{
    printf("%02X-%02X-%02X-%02X-%02X-%02X\n", MACData[0], MACData[1], MACData[2], MACData[3], MACData[4], MACData[5]);
}

static void GetMACaddress(void)
{
    unsigned char MACData[6];

    UUID uuid;
    UuidCreateSequential(&uuid);

    for (int i=2; i<8; i++)
        MACData[i - 2] = uuid.Data4[i];

    PrintMACaddress(MACData);
}

int main()
{
    GetMACaddress();
    system("pause");
}

基本上,我需要将最终结果转换为字符串值 对不起,如果这个太广泛了。

1 个答案:

答案 0 :(得分:0)

您可以使用snprintf()函数转换为字符串:

char buffer[1024];
snprintf(buffer, sizeof(buffer), "%02X-%02X-%02X-%02X-%02X-%02X",
MACData[0], MACData[1], MACData[2], MACData[3], MACData[4], MACData[5]);

std::string str = buffer;