将字符串转换为字节数组

时间:2016-10-07 20:40:51

标签: java c++

我想知道是否存在与Javas .getBytes()方法相当的C ++。我正在读取.txt文件,需要将每行转换为字节。

提前致谢!

2 个答案:

答案 0 :(得分: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编码。对于这两种编码,标准库提供specializations of std::codecvt,可以转换为UTF-8和从UTF-8转换。

如果你想要一个宽字符串的任意编码,那么就C ++标准库而言,你运气不好,抱歉。

答案 1 :(得分:0)

std :: string :: data是等价的。