当我使用文件末尾条件时,为什么我的while循环不会退出?

问题描述 投票:-1回答:1

我使用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;
}

输出应向用户显示输入文件中每个项目的每个价格,数量和总成本。

c++ while-loop eof
1个回答
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;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.