我想知道是否存在与Javas .getBytes()方法相当的C ++。我正在读取.txt文件,需要将每行转换为字节。
提前致谢!
答案 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是等价的。