Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
karat39
4 / 4 / 1
Регистрация: 09.02.2016
Сообщений: 99
#1

Вывод данных в HEX по указателю - C++

21.05.2016, 18:01. Просмотров 238. Ответов 1
Метки нет (Все метки)

Скрывать не буду, совсем не силен в указателях в c++. Путаюсь сильно со звездочками.
Исходные данные:

Имею структуру (названия все поменял):

C++
1
2
3
4
5
6
7
8
struct message {
    char    field1[5];
    char    delimiter1[1];
    char    field2[5];
    char    delimiter2[1];
};
 
message *my_message;
заполняю ее, например вот так:
C++
1
2
3
4
5
my_message = new message;
memcpy(my_message->field1, FIELD1_VALUE, FIELD1_VALUE_SIZE);
memcpy(my_message->delimiter1, ";", 1);
memcpy(my_message->field2, FIELD2_VALUE_SIZE);
memcpy(my_message->delimiter2, ";", 1);
принтую ее:
C++
1
printf ("\n!%s!\n",my_message);
Выводит не все. Только часть. Ну мало ли, думаю, возможно где то завершающий ноль в памяти застрял.
Пытаюсь вывести побайтно. И вот тут у меня проблема. Как в таком случае правильно вывести?
Преположим, что строка у меня начинается с "8=4"
Как пытался:
C++
1
for (int i = 0; i < 10; i++) { printf ("%X ", *(my_message + i));}
Результат:
4050BF 0 0 0 0 0 0 0 0 0

C++
1
for (int i = 0; i < 10; i++) { printf ("%c ", (char *)(my_message + i));}
Результат:
полная ерунда

Пытался еще по другому, но даже стыдно писать как.

Вообщем застопорился, как правильно обратиться к значению в памяти. Буду признателен, за совет.

ps. Отдельно поля структуры вывожу - все нормально.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2016, 18:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод данных в HEX по указателю (C++):

Вывод hex чисел в Memo - C++ Builder
Здравствуйте Глобальная задача в том, чтобы при помощи ГПСЧ вывести заданное количество шестнадцатеричных последовательностей на экран....

ColorDialog, ColorSelect, вывод hex кода в Edit - C++ Builder
возник вопрос по выводу hex кода в Edit из компонентов ColorDialog и ColorSelect для ColorDialog работает функция...

Чтение из реестра бинарных данных в HEX виде. - C++ Builder
Вообщем такое дело, есть в реестре ключ типа REG_BINARY, в нем записаны определенные данные, мне их нужо получить в строковом (string)...

C++ Builder 6.0 - преобразование hex данных с компорта в вещественное число двойной точности - C++ Builder
Доброго всем времени суток. Данные с компорта записываю во временный буфер queue &lt;unsigned char&gt; TmpBuffer;По логике в переменную типа...

Вывод адреса по указателю на char в std::cout - C++
Есть такая вот функция. void Char(char type){ char c,*vc=&amp;c; cout&lt;&lt;setw(8); cin&gt;&gt;c; cout&lt;&lt;type &lt;&lt;setw(8)&lt;&lt;c &lt;&lt;setw(11)&lt;&lt;hex&lt;&lt;c ...

Шестнадцатеричный вывод WORD и DWORD в поток без приведения к указателю - C++
Как сделать? Есть ли для этого потоковый манипулятор? Желательно, чтоб цифры A-F были в верхнем регистре и выводились старшие не значащие...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,468
21.05.2016, 19:19 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char sym16(unsigned int c)
{
   if (c <= 9) return '0' +c;
   else if (c < 16) return 'a' + c - 10;
   else return 1;  // Кракозябр
}
void Dump(char *mem, int n)
{  
  for(int i=0; i<n; i++) {
    printf("%c%c ", sym16(m[i] >>4), sym16(m[i]&7));
    if (i%16 == 0) printf("\n");
  }
}
main()
{
  ....
  Dump((char *)my_message, sizeof(message));
 ...
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2016, 19:19
Привет! Вот еще темы с ответами:

Вывод строки в виде hex-последовательности - C++
Добрый день, собственно есть задача вывести строку в виде hex последовательности. Насколько я понимаю, обычно смотрится - записано ли...

Перевод данных в hex. - C++
Всем привет! char buffs = {&quot;\x01\x7f\x34\xb0\x80&quot;}; printf(&quot;%02X \n&quot;,buffs); // выводит 01 printf(&quot;%02X \n&quot;,buffs); // выводит 7F ...

Если HEX одного файла заменить на HEX другого, то изменится ли файл и будет ли работоспособным? - C++
Привет, если два файла a.exe(калькулятор) и b.exe(выводит строку &quot;Hello World&quot;) Если открыть файл b.exe в HEX-редакторе и подменить его...

Контрол для просмотра данных в HEX - C++
Кто-нибудь видел простой контрол для Borland C++ Builder, в котором можно просмотреть данные (файл, поток) в hex-виде? И иметь возможность...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru