无法从文件到结构c ++读取字符串

时间:2017-09-05 02:21:17

标签: c++

我试图创建一个简单的程序,可以将文件(inventory.txt)中的数据读入结构,然后将该结构输出给用户。每次运行程序时,如果文件中的一部分(带空格)有任何内容,则其余的数据将被省略。 到目前为止,这是我的代码;

# include <fstream>
# include <iostream>
# include <string>
# include <iomanip>
using namespace std;

struct inven
{

    int part,quant;
    string descript;
    float price;
};

int main()
{
    cout << setprecision (2) << fixed;
    inven inventory[100];
    ifstream filein;
    ofstream fileout;
    filein.open ("inventory.txt");


    if (filein.good())
        {
             for (int i = 0; i < 100; i++)
            {
                filein >> inventory[i].part;
                getline (filein, inventory[i].descript);
                filein >> inventory[i].quant;
                filein >> inventory[i].price;
            };
        }
    else
        {
            fileout.open ("inventory.txt", ios::trunc);
        }
    for (int i = 0; i < 100; i++)
            {   
                cout << "Part Number: " << inventory[i].part << endl;
                cout << "Quantity: " << inventory[i].quant << endl;
                cout << "Description: " << inventory[i].descript << endl;
                cout << "Price per item: $" << inventory[i].price << endl;
                cout << "Total price: $" << inventory[i].quant * inventory[i].price << endl << endl << endl;
                if (inventory[i+1].part == 0)
                {
                    i=100;
                }
            }

return 0;
}

我的文字文件目前看起来像;

1
hammer
10
10

上面的文本文件实际上只是一个示例文件,成品应该能够处理100种不同的产品。

提前致谢。

0 个答案:

没有答案