C++ 存储文件时遇到问题,需要跨越所有行,但最后一行除外
我试图将文件数据发送到一个istream变量,该变量在最后一行之前停止读取,并在存储之前离开。有没有一种简单的实现方法?停止字符或类似的东西C++ 存储文件时遇到问题,需要跨越所有行,但最后一行除外,c++,file,istream,C++,File,Istream,我试图将文件数据发送到一个istream变量,该变量在最后一行之前停止读取,并在存储之前离开。有没有一种简单的实现方法?停止字符或类似的东西 istream& TransactionList::getDataFromStream( istream& is) { //read in (unformatted) transaction list from input stream Transaction aTransaction; is >>
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;
}
简单。检查它是否不是最后一次。你可能想检查一下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;
}
谢谢,如果有可能没有交易,考虑到每个交易在同一行中都包含一个“/”,我会在函数中加入什么?