Błędne wczytywanie struktury z pliku
Ostatnio zmodyfikowano 2017-02-28 00:02
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: 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; } }
|
|
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 ';'. |
|
j23 |
» 2017-02-27 10:26:13 while( getline( in, z.nazwa, ';' ) >> z.cena ) { vec.push_back( z ); } |
|
michal11 |
» 2017-02-27 11:26:58 Jeżeli możesz to zapisuj ze spacja pomiędzy średnikiem i wtedy powinno zadziałać. |
|
begginer Temat założony przez niniejszego użytkownika |
» 2017-02-28 00:02:36 Wielkie dzięki:) |
|
« 1 » |