-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


sprintf

Среда, 02 Декабря 2020 г. 16:04 + в цитатник
Qraizer: Чётъмолчат все. Вот, влобное:
    std::ostringstream buf;
    buf.setf(std::ios::hex, std::ios::basefield);
    buf.setf(std::ios::uppercase);
    buf.fill('0');
    buf.width(2); buf << pAdapterInfo->Address[0] << '-';
    buf.width(2); buf << pAdapterInfo->Address[1] << '-';
    buf.width(2); buf << pAdapterInfo->Address[2] << '-';
    buf.width(2); buf << pAdapterInfo->Address[3] << '-';
    buf.width(2); buf << pAdapterInfo->Address[4] << '-';
    buf.width(2); buf << pAdapterInfo->Address[5];
    std::string mac_addr = buf.str();
Вот в один оператор:
    std::string mac_addr = static_cast(
    std::ostringstream() << std::hex << std::setfill('0') << std::uppercase
    << std::setw(2) << pAdapterInfo->Address[0] << '-'
    << std::setw(2) << pAdapterInfo->Address[1] << '-'
    << std::setw(2) << pAdapterInfo->Address[2] << '-'
    << std::setw(2) << pAdapterInfo->Address[3] << '-'
    << std::setw(2) << pAdapterInfo->Address[4] << '-'
    << std::setw(2) << pAdapterInfo->Address[5]
    ).str();
Если вдруг pAdapterInfo->Address имеет неподходящий тип, то нужен ещё каст к int.
Если компилятор у тебя держит C++20, то вот так ещё можно:
    std::string mac_addr = std::format("{:02X}-{:02X}-{:02X}-{:02X}-{:02X}-{:02X}",
    pAdapterInfo->Address[0], pAdapterInfo->Address[1],
    pAdapterInfo->Address[2], pAdapterInfo->Address[3],
    pAdapterInfo->Address[4], pAdapterInfo->Address[5]);
но я пока таких не встречал.

https://forum.sources.ru/index.php?showtopic=420943&view=findpost&p=3842545

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку