Преобразование строки в байтовый массив

Мне было интересно, был ли C ++ эквивалент Javas .GetBytes () метод. Я читаю файл .txt и мне нужно преобразовать каждую строку в байты.

Заранее спасибо!

-4

Решение

std :: string :: data является эквивалентом.

0

Другие решения

В C ++ char это байт. И так std::string это уже последовательность байтов.

Тем не менее, вы можете захотеть последовательность unsigned char,

Один из способов — просто скопировать байтовые значения из строки, например, в std::vector:

using Byte = unsigned char;
vector<Byte> const bytes( s.begin(), s.end() );

Если вы читаете текстовый файл в std::wstring за строку, например используя широкий поток, то байты зависят от вашей предпочтительной кодировки этой строки.

На практике, за исключением, возможно, мэйнфрейма IBM, широкая строка C ++ имеет кодировку UTF-16 или UTF-32. Для этих двух кодировок стандартная библиотека предоставляет специализации std::codecvt которые могут конвертировать в и из UTF-8.


Если вы хотите произвольную кодировку из широкой строки, то вам не повезло в том, что касается стандартной библиотеки C ++, извините.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector