需要帮助从C ++中将数据文件读入不同的变量类型

时间:2015-07-08 18:13:55

标签: c++ visual-studio fstream

好的,所以我的代码遇到了很多麻烦,因为它不起作用。 我试图从这样的数据文件中读取 //我试图读取的数据文件示例 - 注释不是文件的一部分 9569.99 //只在文件中出现一次的双精度

Yukon //字符串 - 汽车名称(1)

红色//字符串 - 汽车颜色(2)

400 //汽车双倍价格(3)

Huehue //(1)

呵呵//(2)

60 //(3) //文件结尾

这就是我试图通读它的方式,而且它没有丝毫工作。我如何更改此代码以使其实际按预期工作?谢谢!

ifstream myfile(menu_file);

    double file_bal;
    string file_carName;
    string file_carColor;
    double file_carPrice;

    if (myfile.is_open())
    {
        myfile >> file_bal;
        cout << "I HAVE READ IN THE BALANCE FROM THE FILE!\n";
        bal = file_bal;
        //
        string line;
        int x = 1;
        while (getline(myfile, line))
        {
            istringstream ss(line);

            if (x == 1)
            {
                ss >> file_carName;
                x++;
            }
            if (x == 2)
            {
                ss >> file_carColor;
                x++;
            }
            if (x == 3)
            {
                ss >> file_carPrice;
                x++;
            }
            if (x == 4)
            {
                Car c(file_carName, file_carColor, file_carPrice);
                addCar(list, c);
                x = 0;
            }


        }

1 个答案:

答案 0 :(得分:0)

ifstream myfile(menu_file);

if (myfile.is_open())
{
    double file_bal;
    myfile >> file_bal;
    cout << "I HAVE READ IN THE BALANCE FROM THE FILE!\n";

    while(!myfile.eof())
    {
        string file_carName;
        getline(myfile, file_carName);

        string file_carColor;
        getline(myfile, file_carColor);

        double file_carPrice;
        myfile >> file_carPrice);

        Car c(file_carName, file_carColor, file_carPrice);
        addCar(list, c);
    }
}