存储无符号字符?

Storing unsinged char?

我正在尝试获取用户的 mac 地址,然后将其存储在字符串中。我有 mac 地址获取函数,但是我在将 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");
}

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

您可以使用 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;