我的boost::array
声明如下
typedef boost::array<unsigned char, 4096> m_array_type;
m_array_type m_recv_buf;
我想将m_recv_buf
输出到stdout
。
std::cout << m_recv_buf << std::endl;
似乎不起作用?如何将其打印到stdout
答案 0 :(得分:2)
答案 1 :(得分:1)
如果要将m_array_type
打印为字符串,则需要使用空终止符正确结束字符串。所以这种方法创建了一个std::string
类型,显式地将长度发送给std::string
构造函数。
std::cout << std::string(reinterpret_cast<const char*>(m_recv_buf.data()), m_recv_buf.size()) << std::endl;
我认为对于必须使用您的代码的其他人来说,这种方式会很明显。但如果m_array_type
改变它的类型,那么之前的答案会更好。