如何修复ifstream函数上的无效参数stof?

时间:2019-04-03 07:35:44

标签: c++11 ifstream ofstream invalid-argument

我正在做一个程序,该程序可以保存某些类的信息。我正在使用ofstream和ifstream。 Ofstream似乎可以正常工作,因为它为每个属性创建了一行。这是我的ofstream函数创建的以下.txt:

Audifonos
4.2
200
Water
10.4
12
Eggs
5.8
24

属性声明为:

string name;
int cantidad;
float precio;

这是我的ofstream函数。

ofstream archivo("productos.txt", ios::out);
if(archivo.is_open())
{
    for(size_t i(0); i<arreglo.size(); i++)
    {
        Producto &p = arreglo[i];
        archivo << p.getName() <<endl;
        archivo << p.getPrecio() <<endl;
        archivo << p.getCantidad() <<endl;
    }
    archivo.close();
}

这是我的ifstream函数。

ifstream archivo("productos.txt");
if(archivo.is_open())
{
    while(!archivo.eof())
    {
        string linea;
        Producto p;
        getline(archivo,linea);
        p.setName(linea);

        getline(archivo, linea);
        p.setPrecio(stof(linea));

        getline(archivo,linea);
        p.setCantidad(stoi(linea));


        if(archivo.eof())
        {
            break;
        }


        agregarp(p);
    }
}

不是语法问题,但是在使用程序时执行该函数时出现此错误:

   terminate called after throwing an instance of 'std::invalid_argument'
   what(): stof

非常感谢您,我想知道如何解决它。

0 个答案:

没有答案