当我使用while
控制何时停止时,我的eof
循环不会退出。输入文件在同一行包含价格和数量,下一行具有相同的价格和数量。
sum = 0
item = 0
in >> price >> quantity;
while (!in.eof())
{
item ++;
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;
in >> price >> quantity;
}
输出应向用户显示输入文件中每个项目的每个价格,数量和总成本。
答案 0 :(得分:0)
我建议采用另一种方法-逐行读取文件,解析每一行,例如:
sum = 0;
item = 0;
string line;
while (getline(in, line))
{
istringstream iss(line);
if (iss >> price >> quantity)
{
++item;
total = price * quantity;
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;
}
}