wczytanie linii z pliku.

wczytanie linii z pliku.
  • Rejestracja: dni
  • Ostatnio: dni
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:

Kopiuj
 
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?

RE
  • Rejestracja: dni
  • Ostatnio: dni
0

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

  • Rejestracja: dni
  • Ostatnio: dni
0

ale w jaki sposób?

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

takie coś sprawy nie załatwi.

lukasz1235
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1105
0

Bo?

MJ
  • Rejestracja: dni
  • Ostatnio: dni
0

bez pętli skoro chcesz dla dwóch.

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

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

Kopiuj
string ciag[100];
for(int i = 0; i < 100; ++i)
{
     if(plik.eof())
          break;
     getline(plik, ciag[i]);
}
CK
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
#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;
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.