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

getline() i wczytanie danych z pliku txt do kontenera

Ostatnio zmodyfikowano 2016-04-09 22:36
Autor Wiadomość
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 !
P-147124
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()
P-147126
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

P-147127
carlosmay
» 2016-04-09 21:55:41
Przykład dla wczytania danych do poszczególnych zmiennych z przykładu z markami motocykli:
C/C++
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;
P-147128
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
P-147129
carlosmay
» 2016-04-09 22:36:26
dopiero zaczynam przygodę
Jeszcze dodam przykład dla operatora
>>
:
C/C++
while( file >> marka >> model >> przebieg >> cena ) {
    std::cout << marka << ' ' << model << ' ' << przebieg << ' ' << cena << std::endl;
}
P-147131
« 1 »
  Strona 1 z 1