2014-05-11 40 views
0

我試圖發送文件數據到一個istream變量,停止讀取最後一行之前,離開之前,存儲。有沒有簡單的方法來實現它?停止角色或類似的東西?從文件存儲故障,需要所有行被傳輸但最後

istream& TransactionList::getDataFromStream(istream& is) { 
    //read in (unformatted) transaction list from input stream 
    Transaction aTransaction; 
    is >> aTransaction; //read first transaction 
    while (is != 0)  
    {  ^^^^^^^ 
     listOfTransactions_.addAtEnd(aTransaction); //add transaction to list of transactions 
     is >> aTransaction; //read in next transaction 
    } 
    return is; 
} 

回答

1

簡單。檢查它不是最後一個。你可能想檢查EOF。

istream& TransactionList::getDataFromStream(istream& is) { 
    //read in (unformatted) transaction list from input stream 
    Transaction aTransaction; 
    Transaction aNextTransaction; 
    is >> aTransaction; //read first transaction 
    while (!is.eof())  
    {  ^^^^^^^ 
     aTransaction = aNextTransaction; 
     is >> aNextTransaction; //read in next transaction 
     // last read didn't set EOF, so its not the last line. Add the previous. 
     if (!is.eof()) 
      listOfTransactions_.addAtEnd(aTransaction); //add transaction to list of transactions 
    } 
    return is; 
} 
+0

感謝,我會怎麼納入功能,如果有有一個「/」包含在同一行那裏是沒有交易,考慮到每一筆交易的可能性? – matt9251