[問題] class

看板Programming作者 (知足常樂)時間18年前 (2007/12/21 13:14), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/3 (看更多)
請問一下 讀入一個檔內容為: I A B C CN I B E F I F G H CN 主程式: void main(){ FILE *fp; char buffer[100]; char command[100]; char data1[100]; char data2[100]; char data3[100]; tree T; if((fp = fopen("testfile11.txt", "rt"))==NULL){ cout<<"File could not opened\n"; } else{ while(!feof(fp)){ fgets(buffer, sizeof(buffer), fp); sscanf(buffer, "%s%s%s%s",command,data1,data2,data3); if(strcmp(command,"I")==0){ T.insert(data1,data2,data3); } } T.traverse(IN_ORDER); } } 若是I指令把它接下去的三個字母insert進去.. 但是每執行一個insert指令他的root會重新跑到data1,而不是繼續之前所建的tree EX:讀入I A B C  root為A沒錯 讀入I B E F root變為B而不是原本的A ---------------------------------------------------------------------------- 但是如果 void main(){ FILE *fp; char buffer[100]; char command[100]; char data1[100]; char data2[100]; char data3[100]; tree T; if((fp = fopen("testfile11.txt", "rt"))==NULL){ cout<<"File could not opened\n"; } else{ T.insert("A","B","C"); T.insert("B","E","F"); T.insert("F","G","H"); T.traverse(IN_ORDER); } } 直接插入的話是可以的root不會跑掉 有誰可以告訴我為什麼嗎? 麻煩大家了>< tree實作 tree::tree(void) { root = current = 0; } void tree::insert(element a,element b,element c) { if (root == 0) { root = new node(a); root->left = new node(b); root->right = new node(c); } else{ node *t = findNode(a); t->left = new node(b); t->right= new node(c); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.219.142

12/22 10:04, , 1F
不如share一下你的未完成程式碼,較好討論
12/22 10:04, 1F
文章代碼(AID): #17QqkpwS (Programming)
討論串 (同標題文章)
文章代碼(AID): #17QqkpwS (Programming)