opis vector string

0

Szukam kogos kto by mi opisal dzialanie programu linijka po linijce z kazdym znakiem. glownie chodzi mi opis funkcji gdzie wystepuje string czyli ok 20 lini, ale dobrze by bylo opisac caly program. jak ktos ma ochote to niech sie odezwie to mu wysle ten program.

0

#include <iostream>
#include <conio.c>
#include <string>
#include <fstream>
#include <vector>

using namespace std;

void czytaj(string nazwa,vector <string> &tekst,size_t &stan)
{
ifstream in;
string linia;
in.open(nazwa.data());
if(in.is_open())
{
stan=1;
while(!in.eof())
{
getline(in,linia);
linia+="\n";
tekst.push_back(linia);
}
tekst.push_back("\n\n\t\t\t --------KONIEC--------\n\n\t\t\tNacisnij ESC aby wyjsc ...");
tekst.push_back("");
}
else
{
textcolor(LIGHTRED);
cout<<"\nPlik o podanej nazwie nie istnieje!!!!\n";
textcolor(WHITE);
stan=0;
getch();
}
in.close();
};

void pokaz(int &i,vector <string> tekst,int ile)
{
if(i<=tekst.size()-1){
for(i;i<=ile;i++)
{
cout<<tekst.at(i);
}
}
};

void menu()
{
clrscr();
textcolor(WHITE);
cout<<"\n\t\tProgram sluzy do wyswietlania plikow tekstowych\n\n\n";
gotoxy(25,5);
cout<<"Wybierz sposob przesowania tekstu :\n";
gotoxy(25,6);
cout<<"SPACJA : Po jednej lini\n";
gotoxy(25,7);
cout<<" 1 : O kilka lini (ok 20 linii)\n";
gotoxy(25,8);
cout<<" 2 : Caly dokument\n\n\n\n\n\n";

cout<<"Podaj nazwe plkiku wejsciowego :";

};

void poczatek(string plik_wejdz,vector <string> &tekst,size_t &stan)
{
menu();
cin>>plik_wejdz;
czytaj(plik_wejdz,tekst,stan);
};

int main()
{
int licz=0,ile=0;
size_t stan;
vector<string>tekst;
char komenda;
string p_we;
poczatek(p_we,tekst,stan);
if(stan==1)
{
do
{
komenda=getch();
switch(komenda)
{
case ' ':
{
pokaz(licz,tekst,ile);
ile+=1;
}break;
case '1':
{
if((licz+ile)<=tekst.size()-1)
{
ile+=20;
pokaz(licz,tekst,ile);
}
else
{
textcolor(LIGHTRED);
cout<<"\nWykorzystuj spacje przesuwanie calymi stronami nie mozliwe\n";
textcolor(WHITE);
ile=(tekst.size()-1-licz);
pokaz(licz,tekst,ile);
}
}break;
case '2':
{
int x=0;
pokaz(x,tekst,tekst.size()-1);
}break;
}
} while(komenda!=27);
}
else poczatek(p_we,tekst,stan);
getch();
return 0;
}

Tak wyglada ten program, chodzi mi głównie o opis funkcji void czytaj.

0

Funkcja czytaj przyjmuje trzy argumenty: pierwszy jest nazwą pliku do otwarcia, adrugi kontenerem (vector) który gromadzi stringi.
W funkcji na początku są zadeklarowane strumień wejścia i łańcuch który będzie przechowywać linie szczytaną z pliku. Następnie następuje próba otwarciaa strumyczka, a if sprawdza czy to się udało jęsli tak przypisuje zmiennej stan wartość 1... Kiedy nie napotkano końca pliku (pętlka while) funkcja getline szczytuje linijka po linijce wersy z pliku, w następnej linijce na koniec dodawany jest znak nowego wiersza i linijka wrzucana jest do wektorka.. na sam koniec vectora stringów wrzucana jest jeszcze informacja o naciśnięciu esc
jeżeli nie udało się otworzyć pliku color zmienia się na jasnoczerwony, wyświetla się inf ormacja o tym że plik nie istnieje kolor wraca na biały, zmienna stan przyjmuje wartość zerową i funkcja oczekuje na naciśniecie klawisza, na sam koniec funkcji strumień jest zamykany..
To by było na tyle z tą funkcją, w razie pytań pisz

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