小さな問題があります。OldMaster、Transaction、および NewMaster の 3 つのファイルがあります。OldMaster と Transaction の口座番号が一致する場合は、残高を更新して NewMaster に書き込みます。一致しない場合は、元のアカウント情報を OldMaster から NewMaster に書き込み、エラーを表示します。
ファイル OldMaster には 4 つのアカウントがあり、ファイル Transactions には 4 つのアカウント トランザクションがあります。何らかの理由で、プログラムが各ファイルの 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;
}