Odczyt danych z pliku: dane w kolumnach oddzielone średnikiem

Odpowiedz Nowy wątek
2011-08-07 22:18
Krzysiek
0

Witam,
mam następujący problem:
np mam daną klasę:

class kraj{
public:
AnsiString nazwa_kraju;
int czas_dojazdu_dni;
bool czy_da_sie_samolotem;
}
 

(to tylko przykład, chodzi o sposób)

i mam plik.txt, w którym mam potrzebne dane do uzupełnienia tablicy tej klasy. Tablicę chcę stworzyć dynamiczną, w zależności od tego ile wierszy ma plik:


Bułgaria;1;1
Afganistan;5;0
Niemcy;1;1

dane w pliku mogę oddzielić dowolnym separatorem poza spacją (bo np nazwa kraju "Wyspy Owcze").

Mam nadzieję, że dość dobrze nakreśliłem problem. Nie mam pojęcia jak to ugryźć w związku w czym wielka prośba o pomoc...

Pozostało 580 znaków

2011-08-07 22:46
Kumashiro
0

Musisz wczytać dane z pliku linia po linii, każdą z nich parsując (rozdzielić dane według separatora, przekonwertować liczby). Po każdej iteracji sparsowanymi danymi inicjujesz obiekt klasy i dodajesz go do listy.
Poczytaj o fstream i wektorach.

BTW, to jest dość proste zadanie, więc raczej w dziale Newbie powinno się znaleźć.

Pozostało 580 znaków

2011-08-08 09:17
Krzysiek
0

Hmm, dla kogo proste to proste... potrafię tylko całą linijkę za jednym zamachem wczytać. Chyba, że przerobię plik, aby każda dana nie była oddzielona ";" ale enterem, ale można się w takim pliku pogubić :/

Pozostało 580 znaków

2011-08-08 10:21
Kumashiro
0

To mi wygląda na zadanie, które powinieneś wykonać samodzielnie, więc nie postnę Ci kompletnego kodu. Zadanie jest banalnie proste, co m.in. oznacza że przy odrobinie samozaparcia jesteś w stanie je rozwiązać bazując na dokumentacji i Google. Spróbować nie zaszkodzi.
Słowa kluczowe, które będą pomocne przy poszukiwaniach to: fstream, readline, strtol, while, split i vector. To, plus zgrubny algorytm opisany przeze mnie wyżej, jest w zupełności wystarczające do rozpoczęcia walki :)
Jak będziesz miał problem ze stworzonym przez siebie kodem, wtedy będziemy mogli Ci pomóc. Gotowców Ci nie damy, bo masz się czegoś nauczyć, a nie rozwiązywać zadania metodą "Kopyego i Peysta" ;)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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