0
私は単純なファイルシステムをエミュレートするプログラムを持っているので、ディレクトリ構造を出力したいので<<
演算子をオーバーロードして、慣性で自分の構造体を通過する別の関数を呼び出しました。それは動作しますが、出力のいくつかの行の前にいくつかの奇妙な16進値があります。 ostream
私が操作する方法に何か問題はありますか? (クラス定義は含まれていませんでしたが、問題はありません)C++で奇妙な文字が表示される
ありがとうございました!
std::ostream& printTree(std::ostream& os, const CFileSystem::TDir* x, int nmbTabs)
{
int k;
const CFileSystem::TDir * nxt = x;
//cout << pocetTabu<<endl;
while(nxt){
os<<"--";
for(k=0;k<nmbTabs;k++){
os << '\t' ;
}
os<<"--";
os << nxt->m_Name << endl;
if(nxt->m_Sub){
os << printTree(os,nxt->m_Sub,nmbTabs+1);
}
nxt=nxt->m_Next;
}
return os;
}
std::ostream& operator <<(std::ostream& os, const CFileSystem& x)
{
os << "/" << endl;
os << printTree(os, x.m_Root,1);
return (os);
}
+1グッドキャッチ:
意味、あなたの
operator<<
は次のように実装する必要があります。 ostreamオブジェクト自体を出力します。 –オハイオ州..私の..ヘックス値は実際にメモリ内のオアストリームのアドレスであり、面白かったです。本当にありがとう! – Randalfien