2013-02-08 3 views
-8

Что такое правильный способ, чтобы преобразовать этот код в Qt, что этот код делать

base64_encode(unsigned char const* bytes_to_encode, unsigned int in_len) 
{ 

while (in_len--) { 
     std::cout<< *(bytes_to_encode++)<<std::endl; 
} 
} 

что * (bytes_to_encode ++) сделать

+2

Qt - это библиотека, а не язык. – poitroae

+2

Возможно, изучите язык, прежде чем пытаться его использовать? – 2013-02-08 17:46:43

+0

Я знаю, что qt - это skd, и я знаю язык, но этот код для меня однозначен. Спасибо – user522745

ответ

1

Поскольку Qt является графическим интерфейсом, я не понимаю, почему вам нужно преобразовать эту функцию (я имею в виду, что ничто в Qt не остановит вас от использования этой функции as-is).

Любом:

bytes_to_encode является указателем на символ, так *bytes_to_encode возвратит символ, на который указывает bytes_to_encode. bytes_to_encode++ вернет указатель и затем увеличит его (т. Е. Укажет на следующее местоположение). *(bytes_to_encode++) объединяет оба действия, то есть возвращает символ, на который указывает bytes_to_encode, а затем увеличивает указатель, чтобы в следующий раз возвращался следующий символ.

+0

это код C do base64, и я хочу его портировать до Qt – user522745

1

Выражение *(bytes_to_encode++) делает две вещи:

*bytes_to_encode будут читать байт в позиции в памяти, на которую указывает указатель bytes_to_encode.

bytes_to_encode++ будет увеличивать указатель bytes_to_encode на 1 (так как это значение без знака). Это называется оператором post-increment.

0

Я не вижу, что ваша функция должна делать с Base64-Encoding Однако взглянуть на QByteArray::fromBase64 и QByteArray::toBase64:.

const QByteArray bytes_to_encode = "your data"; 
const QByteArray encoded = bytes_to_encode.toBase64(); 
std::cout << encoded.constData() << std::endl; 

для декодирования:

const QByteArray encoded = "eW91cl9kYXRh"; 
const QByteArray decoded = QByteArray::fromBase64(encoded); 
std::cout << decoded.constData() << std::endl; 
+0

да QbyteArray do base64 по умолчанию спасибо – user522745

Смежные вопросы