このコードを 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++) とは何ですか
このコードを 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++) とは何ですか
この式*(bytes_to_encode++)
は次の 2 つのことを行います。
*bytes_to_encode
bytes_to_encode
ポインターが指すメモリ内の位置でバイトを読み取ります。
bytes_to_encode++
ポインタを 1 インクリメントしますbytes_to_encode
(unsigned char 値であるため)。これはポストインクリメント演算子と呼ばれます。
Qt は GUI フレームワークであるため、その関数を変換する必要がある理由がわかりません (Qt には、その関数をそのまま使用することを妨げるものは何もないということです)。
いずれかの方法:
bytes_to_encode
は文字ポインタなので、が指す*bytes_to_encode
文字を返しbytes_to_encode
ます。 bytes_to_encode++
はポインタを返し、次にそれをインクリメントします (つまり、次の位置を指すようにします)。*(bytes_to_encode++)
両方のアクションを組み合わせます。つまりbytes_to_encode
、次の文字が返されるように、が指す文字を返し、ポインタをインクリメントします。
関数が 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;