Wczytywanie słów do struktur

0

Witam, mam problem z dodaniem każdego słowa w linii do struktury z pliku tekstowego, przy czym każdego słowo ma również swój odpowiednik w numerze linii, gdzie występuje.
Jak na razie wczytuje mi tylko pierwszą linię.

Nie mogę użyć wektorów.

{
  
    string linia;
    fstream plik;
    
    plik.open("tekst.txt", ios::in);
    if (plik.good() == true)
    {
        while (!plik.eof())
        {
            getline(plik, linia);
            istringstream is(linia);
            
            while (is) 
            {
                string word;
                is >> word;

                cout << word << endl;
                
            };

            return 0;
        }

    }
}

Struktury

struct dane
{
    string word;
    dane* ld; // wskaźnik na lewą gałąź
    dane* rd; // wskaźnik na prawą gałąź
};

struct linia
{
    int nr_linii;
    dane* zaj; // wskaźnik na drzewo zajęć/wpisów
    linia* lp; // wskaźnik na lewą gałąź
    linia* rp; // wskaźnik na prawą gałąź
};
0

To w ogóle ma szansę działać? Struktura linia też jest strukturą rekurencyjną? Po co?

1
Loaki napisał(a):

Jak na razie wczytuje mi tylko pierwszą linię.

Bo tylko tyle napisałeś.

Pachnie jak znalezienie fragmentu/snipetu w googlu i próbę wyłudzenia "zróbcie to za mnie"
Jeśli podejmowałeś jakieś próby, choćby nieudane, to daj - ustawi Cię to w lepszym świetle

0

Nie do końca wiem, czy tak to może wyglądać

string word,  word2 , word3, word4 , word5,  word6 , word7, word8 ,word9 , word10;
    string linia;
    fstream plik;
    int nr_linii;
    int k = 1;
    
    plik.open("tekst.txt", ios::in);
    if (plik.good() == true)
    {
        while (!plik.eof())
        {
            
            
                getline(plik, linia);
                
                istringstream is(linia);
                is >>k>> word >> word2 >> word3 >> word4 >> word5 >> word6 >> word7>> word8 >> word9 >> word10;
                cout << word << " " << word2 << " " << word3 << " " << word4 << " " << word5 << " " << word6 << " " << word7<<" " << word8 << " " << word9 << " " << word10 << " numer linii" << k<<endl;
                k++;
                dodawanie(&glowa, word, word2, word3, word4, word5, word6, word7, word8, word9, word10, k);
            
        }

    }
    return 0;
1

Wiesz czemu odzew na twoje pytanie jest tak słaby?
Dlatego, że nie wiadomo co dokładnie chcesz zrobić.
Radzę ci podaj przykład pliku wejściowego, oraz opisz co chcesz zrobić z tymi danymi.
Wtedy doradzimy jak zorganizować dane i jak je prawidłowo wczytać.

Odcyfrowanie twoich intencji i celu z tego kodu graniczy z cudem (co jest zrozumiałe, bo jesteś początkujący).

0

Dokładnie to co wyżej:

int main()
{
    string w0,w1,w2,w3,w4,w5,w6,w7,w8,w9;
    ifstream plik("tekst.txt");
    for(int k;plik>>ws>k>>w0>>w1>>w2>>w3>>w4>>w5>>w6>>w7>>w8>>w9;)
    {
        dodawanie(&glowa,w0,w1,w2,w3,w4,w5,w6,w7,w8,w9,k+1);
    }
    return 0;
}

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