看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《jack710619 (呵呵呵)》之銘言: : Cinventory inventory; //Cinventory class物件宣告 : deque<Cinventory> dq_inventory; //double-ended queue宣告 : string itemName; : int itemPrice,itemNumber; : char junk[1000]; : ifstream fileInput("inventory.txt",ios::in); : getline(junk,1000,'\n'); //將開頭兩行讀掉,為了不跟需要的資料搞混 : getline(junk,1000,'\n'); //手上的書告訴我可以讀取999個字元到junk : //,或者是讀到\n就結束 : while(!fileInput.eof()) //判別是否讀到檔案的尾端 : { : fileInput >> itemName; : fileInput >> itemPrice; : fileInput >> itemNumber; : inventory.setInventory(itemName //之前忘記打上來 : ,itemPricee,itemNumber); //現在補上 : dq_inventory.push_back(inventory); : } : 補充說明(Supplement): 其實應該為 Cinventory 設計輸入運算子 : istream& operator>> ( istream& in , Cinventory& inventory ) { string itemName ; int itemPrice , itemNumber ; if ( in >> itemName >> itemPrice >> itemNumber ) { inventory.setInventory(itemName,itemPrice,itemNumber) ; } return in ; } 主函式: ... Cinventory inventory ; while ( fileInput >> inventory ) { dp_inventory.push_back(inventory) ; } 這樣程式會比較簡潔。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.25.21
Feis:多載運算子還要考量泛用性,我持保留態度 11/20 14:00
jack710619:我可以問一下為何要做這個多載嗎? 11/21 13:44