Я пытаюсь что-то проверить, и мне нужно предположить, что ввод исходит от клиента, использующего TCP, и что данные представляют собой буфер или, возможно, массив байтов.
Итак, это моя попытка:
unsigned char buf[] = { 99, 249, 117, 130, 110, 227, 171, 204, 30, 201, 225, 130, 203, 206, 74, 88, 94, 12, 223, 172, 60, 12 , 173, 26, 145, 163, 112, 124, 99, 239, 188, 98, 103, 85, 163, 135, 125, 140, 186, 220, 207, 35, 185, 14, 22, 58, 36 , 239, 124, 107, 29, 27, 44, 246, 165};
Предположим, что это от клиента. Я хотел бы проверить, чтобы обработать его:
xor256.Decrypt(buf, result, sizeof(buf));
Но Decrypt
это:
void XOR256::Decrypt(char const* in, char* result, size_t n)
Итак, как мне это исправить?
Проблемы:
Невозможно инициализировать переменную типа
const char *
с lvalue типаunsigned char[55]
Я смущен этим. Я хочу получить результат, но эта функция ничего не возвращает. Но он указывает данные на
result
. Итак, как мне получить данные?я новичок в С++
int main(int argc, const char * argv[])
{
CXOR256Stream xor256;
char *nkey = new char[256];
int a = 111;
int b = 222;
memset(nkey, 0x00, 256);
sprintf((char*)nkey, "%.5d_XXX%.5d_XXX_%.5d", (a+10), (b+10), (a+b));
unsigned char s[] = { 99, 249, 117, 130, 110, 227, 171, 204, 30, 201, 225, 130, 203, 206, 74, 88, 94, 12, 223, 172, 60, 12, 173, 26, 145, 163, 112, 124, 99, 239, 188, 98, 103, 85, 163, 135, 125, 140, 186, 220, 207, 35, 185, 14, 22, 58, 36, 239, 124, 107, 29, 27, 44, 246, 165 };
const char* buf = s; // error here
char result[50];
xor256.Initialize(nkey, 256, 2);
xor256.Decrypt(buf, result, sizeof(buf));
// no error here but I'm confused on getting the data from decrypt so is this right?
cout << result << endl;
return 0;
}
s[]
просто массивом символов, а не беззнаковым. - person Addison   schedule 22.06.2014constant expression evaluates to 249 which cannot be narrowed to type char
- person majidarif   schedule 22.06.2014char
не имеет стандартного представления для значений выше 127 с учетом обычных октетов. - person WhozCraig   schedule 22.06.2014char
иunsigned char
имеют одинаковый размер. Если вы преобразуете 249 вchar
, оно превысит отрицательное число, но если вы преобразуете его вchar
, вы получите исходное значение. - person sudo   schedule 22.06.2014constant expression...cannot be narrowed to type char
- person majidarif   schedule 22.06.2014