c++ przekazywanie wskaźnika na tablice stringow do funkcji
Ostatnio zmodyfikowano 2015-04-15 09:02
pankracy221 Temat założony przez niniejszego użytkownika |
c++ przekazywanie wskaźnika na tablice stringow do funkcji » 2015-04-15 02:13:06 witam. mam problem z przesyłaniem wskaźnika na tablice stringow do funkcji. caly program opiera sie na obsludze plikow. chce wpisac do tablicy strongiw po kolei kazde slowo z pliku binarnego. moj kod jest podzielony na trzy pliki. w głownym w funkcji main mam tekst tablica= czytaj(plik,ilosc); gdzie tablica jest typu typedef const string *tekst; funkcja czytaj, według mnie powinna zwracać wskaźnik na tablicę do stringów więc moja funkcja czytaj wygląda tak tekst czytaj( sciezka nazwa_pliku, int * ilosc ) { ( * ilosc ) = zlicz_slowa( nazwa_pliku ); ifstream plik; plik.open( nazwa_pliku ); string slowo[ * ilosc ]; string * wsk; wsk = slowo; int a; while( !plik.eof() ) { plik >> wsk[ a ]; a++; } plik.close(); return wsk; }
niestety przy wypisywaniu po kolei słów w main'ie dopisują się jakieś dziwne znaczki i cyfry, ale w funkcji czytaj mogę to normalnie wypisać także myślę że coś jest źle z przesyłaniem do funkcji. z góry dzięki za pomoc. |
|
colorgreen19 |
» 2015-04-15 07:03:11 Deklaracja wskaźnika na tablicę wygląda tak string ** wsk |
|
Monika90 |
» 2015-04-15 09:02:47 Tablica jest zmienną lokalną w funkcji czytaj, po wyjściu z tej funkcji tablica nie istnieje. Poza tym jest pełno innych błędów. Użyj std::vector, na przykład: typedef vector < string > tekst;
tekst czytaj( string nazwa_pliku ) { tekst txt; ifstream plik( nazwa_pliku ); string slowo; while( plik >> slowo ) txt.push_back( slowo ); return txt; }
|
|
« 1 » |