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

c++ przekazywanie wskaźnika na tablice stringow do funkcji

Ostatnio zmodyfikowano 2015-04-15 09:02
Autor Wiadomość
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
 
C/C++
tekst czytaj( sciezka nazwa_pliku, int * ilosc ) {
    ( * ilosc ) = zlicz_slowa( nazwa_pliku ); //zmiana ilosc slow
    ifstream plik;
    plik.open( nazwa_pliku );
   
    string slowo[ * ilosc ];
    string * wsk;
    wsk = slowo;
    //wpisywanie w tablice
    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.
P-130905
colorgreen19
» 2015-04-15 07:03:11
Deklaracja wskaźnika na tablicę wygląda tak
string ** wsk
 
P-130906
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:
C/C++
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;
}
P-130910
« 1 »
  Strona 1 z 1