Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Błędne wczytywanie struktury z pliku

Ostatnio zmodyfikowano 2017-02-28 00:02
Autor Wiadomość
begginer
Temat założony przez niniejszego użytkownika
Błędne wczytywanie struktury z pliku
» 2017-02-26 21:34:31
Witam. Mam strukture, musze zapisac do pliku tekstowego w postaci "nazwa;cena". Wszystko sie zapisuje, ale przy odczycie nie wypisuje mi nic. Wiem, ze mozna to odczytac w funkcja getline() ale chcialbym to zrobic w ten sposob. Gdzie mam blad? To moje funckje:

C/C++
struct Produkt
{
    string nazwa;
    float cena;
};

void zapiszprodukty( vector < Produkt >& c, string & name )
{
    ofstream out( name );
    if( out )
    {
        for( int i = 0; i < c.size(); i++ )
        {
            out << c[ i ].nazwa << ';' << c[ i ].cena << endl;
           
        }
    }
    out.close();
}
void odczytajprodukty( string & name )
{
    ifstream in;
    in.open( name );
    vector < Produkt > vec;
    char x;
    if( in )
    {
        Produkt z;
        while( in >> z.nazwa >> x >> z.cena )
        {
            vec.push_back( z );
        }
    }
    else cout << "Blad oczytu";
   
    for( auto & a: vec )
    {
        cout << a.nazwa << ";" << a.cena << endl;
    }
   
}
P-158312
maly7
» 2017-02-27 00:46:10
while( in >> z.nazwa >> x >> z.cena )
Jeśli zawartość pliku jest zapisana ciągiem, to cały ciąg zapisze się do z.nazwa. Automatycznie nie podzieli ci na nazwę i cenę dlatego, że jest pomiędzy nimi ';'.
P-158314
j23
» 2017-02-27 10:26:13
C/C++
while( getline( in, z.nazwa, ';' ) >> z.cena )
{
    vec.push_back( z );
}
P-158316
michal11
» 2017-02-27 11:26:58
Jeżeli możesz to zapisuj ze spacja pomiędzy średnikiem i wtedy powinno zadziałać.
P-158317
begginer
Temat założony przez niniejszego użytkownika
» 2017-02-28 00:02:36
Wielkie dzięki:)
P-158330
« 1 »
  Strona 1 z 1