1 / 1 / 0
Регистрация: 14.10.2014
Сообщений: 74
1

формат вывода cout << hex

28.12.2016, 10:28. Показов 6907. Ответов 3
Метки нет (Все метки)

Все привет, имеется небольшая проблемка, не могу придумать как победить..

C++
1
cout << uppercase << hex << charcode << spacer;
выводит в консоль:
A6 DE 10 3 4C

а надо:
A6 DE 10 03 4C

никто не сталкивался с данной необходимостью?
и еще попутно вопрос - как то можно засунуть в переменную результат этой строки?

вроде этого:
C++
1
2
int answer = "";
answer << uppercase << hex << charcode << spacer;
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2016, 10:28
Ответы с готовыми решениями:

Как узнать, находится ли std::cout в hex-режиме?
Как узнать, находится ли std::cout в hex-режиме?

Как задать формат cout
Как задать формат cout, чтобы красиво выводилась таблица умножения... #include&lt;iostream&gt;...

Перевод в HEX формат структуры
Здравствуйте, мне необходимо передать и принять через TCP данные, следующего вида struct...

Преобразовать HEX значение в нужный формат
9747 перевожу в Hex так : private void simpleButton1_Click(object sender, EventArgs e) ...

3
16082 / 8684 / 2120
Регистрация: 30.01.2014
Сообщений: 14,969
28.12.2016, 11:16 2
V2oD2o,
C++
1
std::cout << std::setw(2) << std::setfill('0');
Добавлено через 1 минуту
Цитата Сообщение от V2oD2o Посмотреть сообщение
как то можно засунуть в переменную результат этой строки?
Что значит результат строки?
Нужно байты A6 DE 10 03 упаковать в int или что?
1
1 / 1 / 0
Регистрация: 14.10.2014
Сообщений: 74
28.12.2016, 13:24  [ТС] 3
Цитата Сообщение от DrOffset Посмотреть сообщение
V2oD2o,
C++
1
std::cout << std::setw(2) << std::setfill('0');
Добавлено через 1 минуту

Что значит результат строки?
Нужно байты A6 DE 10 03 упаковать в int или что?
да, в int массив
0
16082 / 8684 / 2120
Регистрация: 30.01.2014
Сообщений: 14,969
28.12.2016, 13:37 4
Цитата Сообщение от V2oD2o Посмотреть сообщение
да, в int массив
Коды из байтового буфера значениям массива int можно просто присвоить, а чтобы не происходило расширение знакового бита, предварительно преобразовать в unsigned char.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <iomanip>
#include <algorithm>
 
int main()
{
    char buf[5] = { '\x81', '\x10', '\xF1', '\x81', '\x03' };
    
    int  arr[5];
    std::transform(std::begin(buf), std::end(buf), std::begin(arr), [](unsigned char c) { return c; });
    
    for(int e : arr)
    {
        std::cout << std::setw(2) << std::setfill('0') << std::hex << e << ' ';
    }
}
http://rextester.com/MPBYC39670
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.12.2016, 13:37
Помогаю со студенческими работами здесь

Правила вывода cout
Вопрос небольшой. (Кому то сейчас вспомнится Прата.) Тема пожалуй заезжена и даже чувствую вину за...

Переопределить поток вывода cout
Есть некоторый кусок кода выводящий на консоль информацию с помощью cout, все бы хорошо, но при...

странный порядок вывода cout
Доброго времени суток. Есть шаблонный класс stack, и небольшая тестовая программка. Ожидаемый вывод...

cout, два стека, нет вывода из второго
Перегрузил оператор вывода: ostream&amp; operator&lt;&lt;(ostream &amp;ost, List &amp;list) //Перегрузка оператора...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru