所以我有这个:boost :: array data _;
如何将其转换为普通BYTE / Char缓冲区,或者如何使用printf将数据打印到内部而不进行转换?
我如何将它与其他普通的chracter缓冲区进行比较,例如“hello”。 了解boost :: array是如何工作的(我正在创建boost async.tcp服务器)也很有帮助。
我尝试了一些东西,但是我无法在缓冲区内打印字符,我是新手。
我找不到很多关于提升的文档。
谢谢。
答案 0 :(得分:1)
boost :: array类是一个参数化类型,这意味着对于包含10个char类型元素或boost::array<char,10>
的数组,此类型变量的完整类型名称类似于boost::array<float,100>
对于包含100个float类型元素的数组。
如果您碰巧有某种类型data_
T boost::array<
N ,
的变量>
,其中 T 为char
,然后将其中的字符打印出来很简单:
std::cout.write(data_.data(), data_.size());
如果 T 是wchar
,您可以
std::wcout.write(data_.data(), data_.size());
如果您的特定boost::array
类型包含其他元素类型 T ,则需要考虑如何打印元素。例如,如果您对类型的默认流表示感到满意,则可以执行类似
for (auto element : _data) {
std::cout << element << "\n";
}
每行打印一个元素。
您可以在http://www.boost.org/doc/libs/1_53_0/doc/html/boost/array.html
找到boost::array
课程的文档