Problem z jedna funkcja,struktury.

0

Treść zadania:: Dana jest lista filmów o strukturze :nazwa ,rodzaj i cena zapisana w pliku binarnym.
Napisz program,który wypisze najdroższe filmy oraz filmy o zadanym rodzaju wczytanym z klawiatury.

Nie wiem jak to zrobić z tym najdroższym filmem.Jakbym mógł korzystac z tablic to bym to zrobił,ale nie można ;p
Proszę o pomoc ;/

 
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <cstring>
using namespace std;
struct lista_filmow
{
char nazwa[30];
char rodzaj[30];
int cena;
		
};
void wpisz(lista_filmow filmy)
{
	int i=1;
  ofstream plik1("filmy.dat",ios::binary|ios::app|ios::out);
  while(1)
  {
  	cout<<"nazwa";
  	cin>>filmy.nazwa;
  	cout<<"rodzaj";
  	cin>>filmy.rodzaj;
  	cout<<"cena ";
  	cin>>filmy.cena;
  	plik1.write(reinterpret_cast<char*>(&filmy),sizeof(filmy));
  	cout<<"dalej to 1 ,przerwac 0";
  	cin>>i;
  	
  }
	
	plik1.close();
	
}
void najdrozszy(lista_filmow filmy)
{
 ifstream plik("filmy.dat",ios::binary);

 //int max=plik.seekp(0,ios::beg);
 for(;;)
 {
 	plik.read(reinterpret_cast<char*>(&filmy),sizeof(filmy));
 	if(plik.eof())
 	break;
 	
 	
 	
 	
 }
	
	
	plik.close();
	
	
}
void rodzaj_zadany(lista_filmow filmy)
{
	int i=1;
	char r[30];
	cout<<"podaj rodzaj";
	cin>>r;
	ifstream plik("filmy.dat",ios::binary);
	for(;;)
 {
 	plik.read(reinterpret_cast<char*>(&filmy),sizeof(filmy));
 	if(plik.eof())
 	break;
 	
 	if(strcmp(filmy.rodzaj,r))
 	cout<<"  "<<i<<"   "<<filmy.nazwa;
 	
 	
 }
	
	
}
int main()
{
ofstream plik1("filmy.dat",ios::binary|ios::app|ios::out);
lista_filmow filmy;
int z;
switch(z)
{
	case 1:
	wpisz(filmy);
	break;
	case 2:
	najdrozszy(filmy);	
    break;
    case 3:rodzaj_zadany(filmy);
    break;
    default:
break;
	
}

	
	
	
	
system("PAUSE");
}
0

Po kiego ci tablicę plik to tak jakby pewien rodzaj tablicy. Dokładnie tak jak szukasz w tablice tak samo szukasz w pliku, jedynie co się różni to odczyt kolejnej wartości.

0

juz problem rozwiazany ;]

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