此程序从文件中获取输入,并计算所有项目的成本和总计并将其显示给用户。输入文件中的项目数未知,因此我尝试使用eof while循环。我的输入文件包含以下数据。
''' 16.00 24
7.47 13
2.10 15
12.47 18
我的循环到达文件末尾时不会退出吗?我想念什么吗?这是我的代码。
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
int main() {
ifstream inFile;
float price, total, gst, grandTotal, sum;
int item, quantity;
inFile.open("data.in");
const float GST = 1.05;
cout << setw(20) << left << setfill(' ') << \
"Item Number"
<< setw(20) << right << setfill(' ') <<\
"Unit Price"
<< setw(20) << right << setfill(' ') <<\
"Quantity"
<< setw(20) << right << setfill(' ') <<\
"Item Total"
<< endl << endl;
sum = 0;
item = 1;
inFile >> price >> quantity;
do {
total = price * quantity;
sum = sum + total;
cout << setw(20) << left << setfill(' ')\
<< item
<< setw(20) << right << setfill(' '\
) << price
<< setw(20) << right << setfill(' '\
) << quantity
<< setw(20) << right << setfill ('\
') << total
<< endl << endl;
item ++;
inFile >> price >> quantity;
} while (!inFile.eof());
inFile.close();
gst = sum * GST;
grandTotal = sum + gst;
cout << setw(60) << right << setfill(' ') <<\
"GST"
<< setw(15) << right << setfill(' ') <<\
"$" << gst
<< endl << endl;
cout << setw(60) << right << setfill(' ') <<\
"Grand Total"
<< setw(14) << right << setfill(' ') <<\
"$" << grandTotal
<< endl;
return 0;
}
'''