私は銀行業務プログラムを行っており、預金関数には、テキスト ファイルから読み取り、金額を famount に保存する次のコードがあります。唯一の問題は、プログラムを実行して famount を出力すると、前の行にその上の行とまったく同じデータが含まれることです。
これがコードの一部です。
file>>firstname>>lastname;
cout<<endl<<firstname<<" "<<lastname<<endl;
string line;
while (getline(file, line))
{
//stringstream the getline for line string in file
istringstream iss(line);
file>>date>>amount;
iss >> date >> amount;
cout<<date<<"\t\t"<<amount<<endl;
famount+=amount;
// I tried to use this to stop reading after
// to the file ends but it still reads the last
// data on the file twice.
if(file.eof()){
break;
}
}
cout<<famount;
テキスト ファイルは次のようになります。
トニー・ガディス
12/05/24 100
12/05/30 300
07/01/12 -300
//コンソール出力は次のようになります
トニー・ガディス
12/05/24 100
12/05/30 300
07/01/12 -300
07/01/12 -300 //ここにあるはずがない!!!!!
-200 //結果は 100 になるはずです
これを修正するにはどうすればよいですか、なぜそれが起こっているのですか。前もって感謝します。