LINUX.ORG.RU
Форум — Development

Прошу помочь написать кусочек кода


0

1
    if ( len % 4 == 1 ) printf("%.2X ", res32);
    if ( len % 4 == 2 ) printf("%.4X ", res32);
    if ( len % 4 == 3 ) printf("%.6X ", res32);
... что бы не писать вручную как сделать цикл?


Последнее исправление: mordovorot (всего исправлений: 1)

навскидку как-нибудь так:

const std::size_t rem(len % 4);
char pattern[10];
sprintf(pattern, "\%.%u\X", rem*2);
printf(pattern, res32);

anonymous
()

Вот так:

if (len % 4) {
        printf("%.*X ", 2 * (len % 4), res32);
}
Полностью идентично вашему коду.

anonymous
()
Ответ на: комментарий от mordovorot

Если Вы про возможность вычисления при передаче значения функции, то это возможность любой функции. Потому как сначала будет сделано вычисление, а потом его результат передан функции.

pylin ★★★★★
()
Ответ на: комментарий от pylin

думаю, он про модификатор формата *
а вообще пользоваться манами должно входить в привычку...

xydo ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.