Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // To mam od kolegi i nie wiem czy jest dobrze
- //program zawiera zadanie 1-3 Pliki_1.pdf
- #include<iostream>
- #include<string>
- #include<fstream>
- #include<iomanip>
- using namespace std;
- struct linia
- {
- int ilosc;
- double cena;
- string nazwa;
- };
- ostream& operator << (ostream & a, linia & l) //operator strumienia <<
- {
- a << setw(17) << setfill('.') << left << l.nazwa << setw(20) << right << l.ilosc << setfill(' ') << setw(2) << "x" << setw(7) << l.cena << " zl";
- return a;
- }
- class Plik
- {
- private:
- fstream p,f; //pliki
- linia l; //obiekt struktury
- string np; //nazwa pliku
- public:
- Plik();
- void wczytaj();
- void najdluzszy();
- };
- int main()
- {
- Plik a;
- a.wczytaj();
- a.najdluzszy();
- system("pause");
- return 0;
- }
- Plik::Plik() //konstruktor bezparametrowy
- {
- licznikwierszy=0; //zerowanie licznika wierszy
- }
- void Plik::wczytaj()
- {
- cout << "Podaj nazwe pliku\n";
- cin >> np;
- f.open("ladnie.txt", ios::out); //otwarcie pliku w trybie do zapisu
- p.open(np.c_str(), ios::in); //otwarcie w trybie do odczytu
- int licznik=0;
- double suma=0, irc; //irc=ilosc razy cena
- while(p >> l.ilosc) //petla wczytujaca i formatujaca
- {
- p >> l.cena;
- getline(p, l.nazwa);
- licznik++;
- irc=l.ilosc*l.cena;
- suma += irc;
- f<< setw(2) << licznik << "." <<l<< setw(20) << irc <<"zl\n";
- }
- p.close();
- p.open(np.c_str(), ios::app); //otwarcie pliku w trybie dopisywania na koncu pliku
- for(int i=0; i<3; i++)
- {
- cout<<"Podaj ilosc cene nazwe\n";
- cin>>l.ilosc>>l.cena;
- getline(cin,l.nazwa);
- p<<l.ilosc<<' '<<l.cena<<' '<<l.nazwa<<endl;
- irc=l.ilosc*l.cena;
- suma += irc;
- licznik++;
- f<< setw(2) << licznik << "." << l << setw(20) << irc <<"zl\n";
- }
- f<< setw(75) << setfill('-') << '-' << endl << setw(67) << setfill(' ') << "Razem: "<<suma<<endl; //podsumowanie
- f.close();
- p.close();
- cout << "Dane wczytane\n";
- }
- void Plik::najdluzszy() //dziala ale zle (wczytywanie z zest.txt)
- {
- p.open(np, ios::in);
- string wiersz[5];
- for (int i = 0; i < 5; i++)
- {
- getline(p, wiersz[i]);
- }
- p.close();
- string najdluzszy;
- for (int i = 0; i < 5; i++)
- {
- if (wiersz[i].length() > wiersz[i - 1].length()) // wyliczanie najdluzszego wiersza
- najdluzszy = wiersz[i];
- }
- cout << "Najdluzszy wiersz:" << endl << najdluzszy << endl << "Ilosc znakow: " << najdluzszy.length() << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement