Witam. Jestem początkującym programistą i chcę napisać program, który umożliwi wczytanie danych zawartych w pliku tekstowym do określonej struktury.
Chodzi o coś takiego.
Mamy plik tekstowy o zawartości, załóżmy;
Jan Kowalski; 5; 12.12.2011;
i teraz wczytanie do struktury po kolei zawartych danych wiedząc, że ma dzielić po znaku ";" (w C# nie jest to problemem ze względu na funkcję slplit, czy jest jakiś odpowiednik w C++ ?)
struct osoba{
char[50];
float ocena;
float data;
}osoba;
Czyli do char wczyta Jan Kowalski, następnie do float ocena liczbę 5, a do float data 12.12.2011.
Do tej pory próbowałem walczyć z funkcją getline(), jednak operuje ona na stringach i nie da się wpisywać jej wartości do zmiennej, która nie jest stringiem i nie wiem jak sobie z tym poradzić. Proszę o pomoc.
0
0
Po pierwsze takiej daty do float nie wczytasz, chyba ze chcesz usunąć kropki ale to pewnie mija się z celem ? nie lepiej trzymać date w stringu ?
Możesz wczytać do string właśnie przez getline i ewentualnie później rzutować na char[].
Możesz równiej napisać własną funkcje split, nie jest jakaś mega skomplikowana nawet dla początkującego...(wujek google)
0
Zczytujesz, aż do średnika. Dodajesz znaki do string'a i ze string'a rzutujesz na co chcesz.
0
Za bardzo kombinujecie, lepiej się trzymać zasady KISS
struct osoba
{
char nazwisko[50];
float ocena;
char data[11]
};
//zakładając, że in to jest strumień z pliku i jego zawartość jest dokładnie taka jak podałeś w przykładzie
osoba os;
in.getline(os.nazwisko, 50, ';');
in >> os.ocena;
in.ignore(2);
in.getline(os.data, 11, ';');