2

所以我有这个: boost::array data_;

如何将其转换为普通的 BYTE/Char 缓冲区,或者如何使用 printf 在不转换的情况下打印内部数据?

我如何将它与其他正常的字符缓冲区进行比较,例如“你好”。了解 boost::array 的工作原理也将非常有帮助(我正在创建 boost async.tcp 服务器)。

我已经尝试了一些东西,但我无法在缓冲区中打印字符,我是新手。

我找不到太多关于 boost 的文档。

谢谢你。

4

1 回答 1

1

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());

如果Twchar,你可以这样做

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找到该类的文档

于 2013-06-28T23:04:37.157 回答