Program przerywa działanie - problem z string; czytanie danych z pliku do string

0

Mam taki problem:
Sczytuje z pliku stringi do klasy i wszystko jest w porządku, ale kiedy próbuje sczytać stringa z pliku do string temp_string program się wywala.
Po sprawdzeniu przebiegu debuggerem zauważyłem, że temp_string przed czytaniem i po ma wartość 0x3fed5d578 <cygstdc++-6!_ZNSs4_Rep20_S_empty_rep_storageE+24> ""
a normalny string ma w tym miejscu wpisane np. 0x60005d0a8 "Tiger"


int pojazd_silnikowy::fin_info(ifstream &plik) {
    int temp_int;
    string temp_string;
    double temp_double;
    getline(plik, marka);
    getline(plik, model);
    plik >> rocznik;
    plik >> spalanie_na_100km;

    getline(plik,temp_string);
    if (temp_string == "nullptr") {
        kierowca_1 = nullptr;
    } else {
        getline(plik,temp_string);
        kierowca_1->wimie(temp_string);
        getline(plik,temp_string);
        kierowca_1->wnazwisko(temp_string);
        plik >> temp_int;
        kierowca_1->wwiek(temp_int);
        plik >> temp_int;
        kierowca_1->wfprawo_jazdy(temp_int);
    }
    plik >> temp_double;
    bak_1.set(temp_double);
    plik >> temp_int;
    silnik_1.set(temp_int);
}

0

Tu załącznik

1

#include <iomanip>
plik >> rocznik >> ws;
plik >> spalanie_na_100km >> ws;

0

@_13th_Dragon zmieniłem kod tak jak pokazałeś i błąd zniknął. Naprawiłem inne błędy które wystąpiły po tym wcześniejszym, a następnie cofnąłem zmiany początkowe czyli
(#include <iomanip>
plik >> rocznik >> ws;
plik >> spalanie_na_100km >> ws;
)"
napisałem po staremu bez ">> ws"
i nie ma żadnych błędów.
Co powodowało błąd wcześniej i dlaczego go teraz nie ma?

0

A nie jednak błąd dalej jest ale już nie przerywa wykonywania programu.
Czyli >>ws musi być.

1

Jak by to delikatnie powiedzieć... :- coś waść pochrzanił
ws zjada białe znaki, jeżeli po wczytaniu liczby nie dasz ws to następny getline wczyta pusty wiersz
Podaj aktualny kod oraz zawartość pliku wejściowego

0

Już nie trzeba, jak jest ">> ws" to wszystko dobrze działa.
Dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1