可能重複:
How to force std::stringstream operator >> to read an entire string?C++ std :: stringstream >> std :: string只存儲第一個條目?
我想一個結構轉換爲字符串,類似於如何的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"
,沒有別的。
有什麼明顯的我在這裏失蹤?
@BoPersson我的問題是更多關於爲什麼我沒有得到完整的字符串。如果我知道'''沒有讀完整串我不會問。 –