Witam, mam problem z funkcją getline().
Utworzyłam na próbę plik trasa.txt, w którym jest 5 linii zawartości:
To sa dostepne trasy:
To jest trasa 1
To jest trasa 2
To jest trasa 3
To jest trasa 4
To jest trasa 5
To jest trasa 6
Dokonaj wyboru:
Chciałabym je wczytac z pliku i wyswietlić na ekranie.
Jednak mój kod nie działa i wyswietla się tylko 8 linia tekstu po czym program się konczy.
Pomoże ktos??
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
fstream trasa;
trasa.open("trasa.txt", ios::in);
if (!trasa.good())
{
cout<<"Nie znaleziono pliku.";
exit(0);
}
string opis, wybor;
string trasy[6];
string linia;
int i=0;
while (getline(trasa, linia))
{
if (i=0) //pierwszy obieg i=0, linia 1 zapisze się do zmiennej opis,
opis = linia;
else if (i=7) //ósmy obieg i=7, linia 8 zapisze się do zmiennej wybor,
wybor = linia;
else
trasy[i-1] = linia; // drugi obieg i=1, do trasy[0] zapisze sie linia 2,
i++; // trzeci obieg i=2, do trasy[1] zapisze sie linia 3,
// czwarty obieg i=3, do trasy[2] zapisze sie linia 4,
// piaty obieg i=4, do trasy[3] zapisze sie linia 5,
// szósty obieg i=5, do trasy[4] zapisze sie linia 6,
// siódmy obieg i=6, do trasy[5] zapisze sie linia 7,
}
trasa.close();
cout<<opis<<endl;
for (int i=0; i<6; i++)
{
cout<<trasy[i]<<endl;
}
cout<<wybor;
return 0;
}
Użyłam petli while (getline(trasa,linia)), i juz nawet rozpisałam sobie w komentarzach , w ktorym obiegu ma się ktora linia wczytac, ale i tak nie wczytuje się.