Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Парсинг байтов с сайта для manual map

  • Автор темы Автор темы zWays
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
22 Июл 2020
Сообщения
72
Реакции
5
Такая тема уже была на yougame, но так и не была решена. Я получаю байты для manual map в виде байтов в строке, как я могу их преобразовать в байтовый массив на C++?

Пример:

std::string bytes = "0x14, 0x12"; и т.д. => BYTE bytes2[ ] = { 0x14, 0x12 };
 
Если я правильно понял, то разбей полученную строку на подстроки. И потом каждую подстроку переводи в число с помощью функции std::strol. Это вот прям первое что пришло в голову
 
Или как предложено выше, или вот так (насрал за 5 сек):

C++:
Expand Collapse Copy
std::stringstream file("0xDE, 0xAD, 0xBE, 0xEF, 0xAA");
std::vector<unsigned char> result;

while (file.good())
{
    std::string substr;
    getline(file, substr, ',');
    char* p;
    substr = substr.substr(substr.find_first_not_of(' '));
    unsigned char val = strtol(substr.c_str(), &p, 16);
    result.push_back(val);
}

//result.data() - твой массив
Здесь я читаю твои байты из потока, что более эффективно в плане памяти использования памяти, да и по идее быстрее чем разбивать на кучу подстрок.
 
Или как предложено выше, или вот так (насрал за 5 сек):

C++:
Expand Collapse Copy
std::stringstream file("0xDE, 0xAD, 0xBE, 0xEF, 0xAA");
std::vector<unsigned char> result;

while (file.good())
{
    std::string substr;
    getline(file, substr, ',');
    char* p;
    substr = substr.substr(substr.find_first_not_of(' '));
    unsigned char val = strtol(substr.c_str(), &p, 16);
    result.push_back(val);
}

//result.data() - твой массив
Здесь я читаю твои байты из потока, что более эффективно в плане памяти использования памяти, да и по идее быстрее чем разбивать на кучу подстрок.

Спасибо большое!
 
Назад
Сверху Снизу