0
我有一個小問題。我有三個文件,OldMaster,Transaction和NewMaster。如果OldMaster和Transaction之間的帳號匹配,我更新餘額並寫入NewMaster。如果它們不匹配,我將OldMaster中的原始帳戶信息寫入NewMaster並顯示錯誤。C++:文件處理:匹配順序文件
文件交易中有4個賬戶在文件OldMaster和4個賬戶交易。出於某種原因,我的程序沒有處理每個文件中的第四個(最後一個)帳戶/交易,並且NewMaster沒有收到數據。
int accountNumber
int accountNum;
string lastName;
string firstName;
float currentBalance;
float dollarAmount;
inOldMaster >> accountNumber >> firstName >> lastName >> currentBalance;
inTransaction >> accountNum >> dollarAmount;
while (!inOldMaster.eof() && !inTransaction.eof())
{
if (accountNumber == accountNum)
{
currentBalance += dollarAmount;
outNewMaster << accountNum << " " << firstName << " " << lastName << " "
<< currentBalance << endl;
}
else if (accountNumber != accountNum)
{
outNewMaster << accountNumber << " " << firstName << " " << lastName << " "
<< currentBalance << endl;
cout << "Unmatched transaction record for account number: " << accountNum
<< endl;
}
inOldMaster >> accountNumber >> firstName >> lastName >> currentBalance;
inTransaction >> accountNum >> dollarAmount;
}
對於做什麼原因,你需要第二個「如果」在施工'如果(使用accountNumber == accountNum)......否則**如果( accountNumber!= accountNum)**'?如果'accountNumber == accountNum'不是真的,那麼'accountNumber!= accountNum'肯定是真的,你不需要檢查。 – fogbit