2014-05-11 2 views
0

Я пытаюсь отправить данные файла в переменную istream, которая перестает читать перед последней строкой и выходит до того, как она будет сохранена. Есть ли простой способ его реализации? Символ остановки или что-то подобное?Устранение неполадок из файла, нужно, чтобы все линии были трансефредами, но последние

ответ

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