Re: [問題] 關於C++的檔案處理

看板C_and_CPP (C/C++)作者 (pziyout)時間12年前 (2013/11/20 13:53), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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

11/20 14:00, , 1F
多載運算子還要考量泛用性,我持保留態度
11/20 14:00, 1F

11/21 13:44, , 2F
我可以問一下為何要做這個多載嗎?
11/21 13:44, 2F
文章代碼(AID): #1IZ4vUwz (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1IZ4vUwz (C_and_CPP)