我有一個從二叉樹寫入東西的函數。當我運行它時,它只是在txt中寫入樹的根。有人能告訴我這裏有什麼問題嗎?預先寫入一個txt文件中的二叉樹
void tree::wrte(person *p)
{
ofstream out("myfile.txt");
struct register{
char ID[15];
char name[30];
char surname[30];
};
register reg;
if(!(mybook=fopen("myfile.txt","a+")))
{
if (!(mybook=fopen("myfile.txt","w+")))
{
cerr<<"Couldnt opened"<<endl;return;
}
}
if(p)
{
strcpy(reg.name,p->name);
strcpy(reg.ID,p->ID);
strcpy(reg.surname,p->surname);
out << reg.ID <<'\t'<<reg.name<<'\t'<<reg.surname<<'\t'<<endl;
wrte(p->left);
wrte(p->right);
}
out.close();
}
爲什麼每個函數調用都打開一個文件描述符?爲什麼不通過這個流派作爲一個論點? – fge 2011-12-23 17:47:46
爲什麼你打開它,即使'p'爲'NULL'? – fge 2011-12-23 17:48:29
我試圖做到這一點,但我無法做到。所以這樣我就問這裏:\任何想法請你?因爲該功能總是打開和關閉文件:\ – 2011-12-23 17:51:11