У меня есть программа, которая должна эмулировать простую файловую систему, я хочу напечатать структуру каталогов, поэтому я перегрузил оператор <<
и вызвал другую функцию, которая проходит через мою структуру в рекурсии. Он работает, НО есть некоторые странные шестнадцатеричные значения перед некоторыми линиями на выходе. Что-то не так с тем, как я манипулирую с ostream
? (Я не включил определение класса, но это не должно иметь значения)Странные символы появляются в 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 Хороший улов. Вывод самого объекта Ostream. –
О, мой ... Так что шестнадцатеричные значения были фактически адресами ostream в памяти, интересными. Спасибо! – Randalfien