私は、サードパーティの型を処理するために、STD :: ostreamにオペレーター< <のための独自の実装を持っているサードパーティのコードを使用しています。 私は、この出力用にstringstreamを使用しています - のような:削除のNULL文字列::
string ToString(const thrdPartyType& structure)
{
stringstream outputStream;
outputStream<<structure;
return outputStream.str();
}
...
string str = ToString(structure);
...
この構造体はNULLに設定されているポインタのメンバーが含まれています。オペレータ< <と文字列にstr()
の割り当てを使用している場合、私は(GDB経由 - print str
)を参照してください有数の多くがあることを「\ 000」文字、その後、私は必要な文字列データ。私は唯一の真のではなく、空のデータを取得するために、これらのNULLをトリミングすることができますどのように
?
P.S.正確なコードは
ありがとう... WindowsのVC++で正常に動作します。
を生成します。おそらくあなたはバグレポートを提出するべきです。 –
まずはoutputStreamを印刷できますか?どのプラットフォームでgdbを実行していますか?これは、印刷のポインタである場合、それらは、64ビット、あなたがより多くのゼロの文字を参照してください理由を説明する可能性が動作していないされている場合? – CashCow