mkami Temat założony przez niniejszego użytkownika |
getline() i wczytanie danych z pliku txt do kontenera » 2016-04-09 20:07:23 Witam! Mam problem z odpowiednim wczytaniem danych z pliku txt do programu, a mianowicie nie wiem jaką funkcją zastąpić funkcje getline która wczytuje cały wiersz do jednego wiersza w tablicy. W programie mam zdefiniowaną klasę
class motor { public: string marka, model, przebieg, cena; motor(string, string, string, string); };
I chciałbym żeby program wczytywał każdą zmienną string osobno i przypisywał ją w odpowiednim miejscu w tablicy
Wiem, że nie użyłem w tym poście wyspecjalizowanego języka, ale mam nadzieje, że ktoś rozumie o co chodzi i mi pomoże . Z góry za to dzięki ! |
|
carlosmay |
» 2016-04-09 20:18:28 Wiem, że nie użyłem w tym poście wyspecjalizowanego języka, ale mam nadzieje, że ktoś rozumie o co chodzi |
Właśnie nie bardzo. nie wiem jaką funkcją zastąpić funkcje getline która wczytuje cały wiersz do jednego wiersza w tablicy. |
Właśnie ta funkcja to robi. I chciałbym żeby program wczytywał każdą zmienną string osobno i przypisywał ją w odpowiednim miejscu w tablicy |
Cały wiersz, czy każdy wyraz z wiersza osobno? Bo nie wiadomo o co chodzi. Jeśli słowa są oddzielone w wierszu spacjami, to wczytuj operatorem >> do zmiennych, albo std::getline (istream, string, delim); z odpowiednim argumentem 'delim'. std::getline() |
|
mkami Temat założony przez niniejszego użytkownika |
odp » 2016-04-09 21:43:22 więc jak wyglądałby kod , gdy chce wczytać zmienne oddzielone spacjami do odpowiednich zmiennych string? mógłbyś pokazać na przykładzie ?
mam klasę osoba(string imie, string nazwisko, string wiek); ifstream file("baza.txt", ios::in);
Jan Nowak 47 ----- to jest zapisane w pliku txt
|
|
carlosmay |
» 2016-04-09 21:55:41 Przykład dla wczytania danych do poszczególnych zmiennych z przykładu z markami motocykli: std::string marka, model, przebieg, cena; std::fstream file( "dane_moto.txt", std::ios::in ); if( file.is_open() ) { for( int i = 0; i < 4; i++ ) { std::getline( file, marka, ' ' ); std::getline( file, model, ' ' ); std::getline( file, przebieg, ' ' ); std::getline( file, cena ); std::cout << marka << ' ' << model << ' ' << przebieg << ' ' << cena << std::endl; } file.close(); } else std::cerr << "file error" << std::endl; |
|
mkami Temat założony przez niniejszego użytkownika |
odp » 2016-04-09 22:08:59 No i działa jak trzeba ! Dzięki wielkie dopiero zaczynam przygodę z c++, stąd te problemy |
|
carlosmay |
» 2016-04-09 22:36:26 dopiero zaczynam przygodę |
Jeszcze dodam przykład dla operatora >> : while( file >> marka >> model >> przebieg >> cena ) { std::cout << marka << ' ' << model << ' ' << przebieg << ' ' << cena << std::endl; } |
|
« 1 » |