我正在尝试将结构转换为字符串,类似于 toString() 对 Java 或 C++ 中的对象的工作方式。为此,我将格式化数据写入 std::stringstream,然后将其写入 std::string。
这是我所拥有的:
std::stringstream ss;
std::string packet;
ss << "Packet Length: " << p->header->len
<< " (" << p->header->caplen << ")" << std::endl
<< "Collected: " << timedate << "."
<< std::dec << p->header->ts_usecs << std::endl
<< "Eth:\tFrom: " << to_address(p->from) << std::endl
<< "\tTo: " << to_address(p->to) << std::endl
<< "\tType: " << to_hex(p->type, false)
<< " (" << p->type_name << ")" << std::endl;
但是由于某种原因,当我将此流写入 std::string 数据包时:
ss >> packet;
然后打印数据包的值:
cout << "Packet X " << packet << endl;
我只看到文字"Packet"
,没有别的。
我在这里有什么明显的遗漏吗?