Обратите внимание на base64_decode
в http://www.adp-gmbh.ch/cpp/common/base64.html
std::string base64_decode(std::string const& encoded_string)
Функция должна возвращать byte array
для указания двоичных данных. Однако функция возвращает std::string
. Я предполагаю, что автор пытается избежать явного распределения динамической памяти.
Я пытаюсь проверить правильность вывода.
int main()
{
unsigned char data[3];
data[0] = 0; data[1] = 1; data[2] = 2;
std::string encoded_string = base64_encode(data, 3);
// AAEC
std::cout << encoded_string << std::endl;
std::string decoded_string = base64_decode(encoded_string);
for (int i = 0; i < decoded_string.length(); i++) {
// 0, 1, 2
std::cout << (int)decoded_string.data()[i] << ", ";
}
std::cout << std::endl;
getchar();
}
Выбранный выход корректен. Просто хочу подтвердить, допустимо ли std::string
хранить двоичные данные, чтобы избежать ручного управления динамической памятью.
std::string s;
s += (char)0;
// s.length() will return 1.