1

私は銀行業務プログラムを行っており、預金関数には、テキスト ファイルから読み取り、金額を 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 になるはずです

これを修正するにはどうすればよいですか、なぜそれが起こっているのですか。前もって感謝します。

4

1 に答える 1