Top.Mail.Ru
Ответы

(C++) char array заполненный последовательностью hex. Вывод последовательности hex на экран.

Последовательность внутри массива включает в себя "\x00" - что воспринимается, как конец строки и, соответственно, длина массива уже не 5 элементов (если не учитывать доп. элемент \0), а 2.
Как этого избежать, если в действительности эта запись имеет смысл для дальнейшей работы программы.

Как правильно написать кусок кода, который выведит все элементы данного массива в hex форме (так как они записаны на фото) в консоль?

По дате
По рейтингу
Аватар пользователя
Мудрец
5лет

может это подойдет вывод hex данных

#include < iostream > // удалить пробелы между < >
#include < iomanip > см с++ форма-ный вывод / вывод cppstudio.com/post/319/

using namespace std;

int main()
{
unsigned char a[] = { 0x29, 0x7b, 0x00, 0x8b, 0x07, 0x9 };

size_t firstLen = sizeof(a )/sizeof(a[0]); // или sizeof( a ) / sizeof( unsigned char ) ;
cout << "кол-во " << firstLen << endl;

int i =0;
while( i < firstLen )
{
cout << hex << showbase << (unsigned int)a[ i++ ]<< endl;
// i++ ;
}

return 0;
}

Аватар пользователя
Оракул
5лет

int i = 0;
while(a[i] != '\xc7')
i++;

strlen по умолчанию считает до '\0'