wczytanie linii z pliku.

0

cześć, mam taki problem; w pliku tekstowym mam dwie linijki tekstu, chcę je wczytać do programu, ale w postaci dwóch stringów
czyli jak użyje czegoś takiego:

 
string ciag
while(!plik.eof)
{
     getline(plik, ciag)
}

to najpierw pobierze jedna linie a potem na nia nadpisze druga, jak zrobic, aby pierwsza linia była w ciag1, a druga 2 ciag2? da sie cos takiego?

0

Najpierw wywołaj getline dla ciag1, a później dla ciag2. Jak nie zawsze będą dwie linie to użyj wektora.

0

ale w jaki sposób?

string ciag1, ciag2l
while(!plik.eof)
{
     getline(plik, ciag1)
     getline(plik, ciag2)
}
 

takie coś sprawy nie załatwi.

0

Bo?

0

bez pętli skoro chcesz dla dwóch.

getline(plik, ciag1);
getline(plik, ciag2);

Jeżeli potrzebujesz dla większej ilości np 100

string ciag[100];
for(int i = 0; i < 100; ++i)
{
     if(plik.eof())
          break;
     getline(plik, ciag[i]);
}
0
#include <fstream>
#include <iterator>
#include <vector>

template <class Container>
void get_lines( std::istream & stream, Container & lines )
{
    std::string line;
    std::back_insert_iterator<Container> inserter = std::back_inserter( lines );

    while ( !stream.eof() ) {
        getline( stream, line );
        inserter = line;
    }
}

int main()
{
    std::vector<std::string> lines;
    std::ifstream stream( "/home/user/tmp.txt" );

    get_lines( stream, lines );

    return 0;
}

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