Показать сообщение отдельно
Старый 07.11.2010, 23:55   #35
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Кислый пока неопределено
По умолчанию

поехали дальше.

есть
Код:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>

using namespace std;

//function IntToHex ( DecimalValue : Integer; MinimumWidth : Integer ) : string;
char* IntToHex(int DecimalValue, int MinimumWidth)//, char b[])
{
    static char b[256];
    sprintf(b, "%lX", DecimalValue);
    int len = strlen(b);
    int i = len;
    int l = MinimumWidth-len;
        while(i>=0)
            {
                b[i+l]=b[i];
                i--;
            }
        while((i+l)>=0)
            {
                b[i+l] = '0';
                i--;
            }
    return b;
}
и
Код:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>

using namespace std;

//function IntToHex ( DecimalValue : Integer; MinimumWidth : Integer ) : string;
char* IntToHex(char* b[], int DecimalValue, int MinimumWidth)//, char b[])
{
    sprintf(b, "%lX", DecimalValue);
    int len = strlen(b);
    int i = len;
    int l = MinimumWidth-len;
        while(i>=0)
            {
                b[i+l]=b[i];
                i--;
            }
        while((i+l)>=0)
            {
                b[i+l] = '0';
                i--;
            }
    return b;
}
нужно заставить работать эту функцию без внешнего буффера, т.к. иначе не получается использовать конструкцию типа
printf(" %s %s",IntToHex(125,4),IntToHex(170,8));
проблема в том что всегда возвращается результат первого вызова функции.
прошу не советовать использовать std::string.
Кислый вне форума   Ответить с цитированием