Member 12899279 Ответов: 2

Как сохранить MAC - адрес в переменной?


я хочу сохранить mac-адрес в переменной, полученной из кода в цикле for, упомянутом ниже

Что я уже пробовал:

int a;
	char MacAddr[6];
	ULONG size = sizeof(MacAddr);
	char jk;
	SendARP(inet_addr(argv[1]), inet_addr(ipv4.c_str()), MacAddr, &size);
	//std::cout << "Ipv4 is:  "+ipv4;
	std::cout << "\nThe MAC address is: ";
	for (unsigned char c : MacAddr)
		std::cout << std::setw(2) << std::setprecision(2) << std::setfill('0') << std::hex << (unsigned)c << " ";

phil.o

Неясно: хранение чего-либо в переменной тривиально (variable = value;). Этот MacAddr переменная уже содержит это значение.
Пожалуйста, используйте зеленый цвет Улучшить вопрос виджет, который появляется при наведении вашего вопроса, и уточните его.

Member 12899279

как вы можете видеть я показываю mac адрес после преобразования его в шестнадцатеричный и я хочу использовать тот же формат в котором он отображается через механизм цикла for я хочу сохранить его в строковой переменной так что в следующий раз я могу просто распечатать строковую переменную на экране

2 Ответов

Рейтинг:
17

CPallini

Цитата:
как вы можете видеть я показываю mac адрес после преобразования его в шестнадцатеричный и я хочу использовать тот же формат в котором он отображается через механизм цикла for я хочу сохранить его в строковой переменной так что в следующий раз я могу просто распечатать строковую переменную на экране
Затем использовать std::ostringsteam, вместо std::cout.
Взгляните на это ostringstream::ostringstream - ссылка на C++ [^] (см. пример кода).


Maciej Los

5ed!

CPallini

Спасибо тебе, Мацей!

Рейтинг:
10

Member 12899279

я заставила его работать с этим

std::stringstream ss;
for (unsigned char c : MacAddr)
		ss<<std::setw(2) << std::setprecision(2) << std::setfill('0') << std::hex << (unsigned)c << " ";
	std::string sMAC = ss.str();
	cout << "\nMac address is:  " + sMAC;