所以我有这个: boost::array data_;
如何将其转换为普通的 BYTE/Char 缓冲区,或者如何使用 printf 在不转换的情况下打印内部数据?
我如何将它与其他正常的字符缓冲区进行比较,例如“你好”。了解 boost::array 的工作原理也将非常有帮助(我正在创建 boost async.tcp 服务器)。
我已经尝试了一些东西,但我无法在缓冲区中打印字符,我是新手。
我找不到太多关于 boost 的文档。
谢谢你。
所以我有这个: boost::array data_;
如何将其转换为普通的 BYTE/Char 缓冲区,或者如何使用 printf 在不转换的情况下打印内部数据?
我如何将它与其他正常的字符缓冲区进行比较,例如“你好”。了解 boost::array 的工作原理也将非常有帮助(我正在创建 boost async.tcp 服务器)。
我已经尝试了一些东西,但我无法在缓冲区中打印字符,我是新手。
我找不到太多关于 boost 的文档。
谢谢你。
boost::array 类是参数化类型,这意味着该类型变量的完整类型名称类似于boost::array<char,10>
包含 10 个 char 类型元素boost::array<float,100>
的数组或包含 100 个 float 类型元素的数组。
如果您碰巧有一个T Ndata_
类型的变量,其中T是,那么打印出其中的字符很容易:boost::array<
,
>
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.htmlboost::array
找到该类的文档