C++ wyszukiwanie usunięcie edycja

0

Witam!
Nie wiem od czego zacząć, muszę przerobić program tak aby dało się z pliku wyszukiwać dane usunąć lub edytować jakąś cześć
Plik c++ wygląda tak:

 #include <iostream>
#include <string>
#include <fstream>
using namespace std;

struct Samochod
{
	int numer;		 //kolejny
	string marka;
	string model;
	int rok;                 
	double cena;
}; 


const int n=200;
Samochod tab [n];

int rozmiar()
{
	string model , marka;
	int rok , numer;
	double cena;
	
	ifstream plik;
	plik.open("baza.txt");
	int rozm = 0;
	
	while(!plik.eof())
	{
		plik>>numer;
		plik>>marka;
		plik>>model;
		plik>>rok;
		plik>>cena;
		
		rozm += 1;
	}
	
	plik.close();
	return rozm-1;
}

void zpliku(int n)
{
	ifstream plik;
	plik.open("baza.txt");
	
	for(int i=0;i<n;i++)
	{
		plik>>tab[i].numer;
		plik>>tab[i].marka;
		plik>>tab[i].model;
		plik>>tab[i].rok;
		plik>>tab[i].cena;
	//	cout<<tab[i].model;
	}
	plik.close();
}

void dopliku(int n)
{
     	ofstream plik;
     	plik.open("baza.txt");
     	for (int i=0;i<n;i++)
     	{
		plik<<tab[i].numer<<endl;
		plik<<tab[i].marka<<endl;
		plik<<tab[i].model<<endl;
		plik<<tab[i].rok<<endl;
		plik<<tab[i].cena<<endl;
		plik<<endl;
    }
        plik.close(); 
 }
 


int main()
{	
    int i=0;
    int znak;
    
    int ile=rozmiar();
   // cout<<ile;
    zpliku(ile);
    
   	do
	{

	cout<<"		Dopisanie nowego somochodu/smochodow 		wcisnij - 1\n";
	cout<<"	 Wypisanie wszystkich samochodow      		wcisnij - 2\n";	
	cout<<"Edycja                                      wcisnij - 3\n";
	cout<<"     Wyszukiwanie                                wcisnij - 4\n";
	cout<<"     Usuniecie                                   wcisnij - 5\n";
	cout<<"		Wyjscie z programu                   		wcisnij - 0\n";	
	cout<<"Co chcesz robic ??\n";	
	cin>>znak;	
	
	switch(znak)
	{
		case 1:
		{
        ile=ile+1;
        i=ile-1;
       // cout<<"ile z dodaj"<<ile;
		tab[i].numer = ile;
		cout<<"Podaj marke :\n";
		cin>>tab[i].marka;
		cout<<"Podaj model:\n";
		cin>>tab[i].model;
		cout<<"Podaj rok produkcji :\n";
		cin>>tab[i].rok;
		cout<<"Podaj cene samochodu :\n";
		cin>>tab[i].cena;
	    
        break;
		}
		case 2:
		{
 	       for (int i=0;i<ile;i++)
     	   {
		    cout<<tab[i].numer<<endl;
		    cout<<tab[i].marka<<endl;
		    cout<<tab[i].model<<endl;
		    cout<<tab[i].rok<<endl;
		    cout<<tab[i].cena<<endl;
		    cout<<endl;
    }
             break;
         }
         
         case 3:
              {
                   
             
}	          
    


    	case 0:
		{
			dopliku(ile);
            cout<<"Dziekuje! Dowidzenia ;p ;)\n";
		
			//break;
		}
	}
	}while(znak != 0);
    
    
	
	
	
	
	
	return 0;
}

a plik tekstowy wyglada tak:

1
seat
toledo
1994
4300

2
fiat
uno
1999
2300

3
seat
leon
1994
3434

4
opel
zafira
1998
7800

Mógłby mi ktoś pomóc?
Bo nie mam pojecia naprawdę jak zrobić te kilka poleceń.
Próbowałem wyszukiwać pętlą if lecz coś mi nie wychodziło
Czekam na jakieś podpowiedzi :)

0

Podaj co Ci konkretnie nie wychodzi, w pliku masz puste entery - nie wczytujesz ich...

0

nie mam pojęcia jak wyczytać z tego pliku np. Wpisuje się model. i wyskakuje marka rok cena
usunięcie, to też usunięcie danego modelu
Edycja, czyli zmiana elementów

0
xmadyx napisał(a):

Próbowałem wyszukiwać pętlą if lecz coś mi nie wychodziło
Dopóki będziesz próbować z pętlą if na 100% nic nie wyjdzie.

0

Robiłem podobny program na studiach. Polecam zapisać sobie dane w innym formacie, np. takim:

1|seat|toledo|1994|4300
2|fiat|uno|1999|2300
3|seat|leon|1994|3434
4|opel|zafira|1998|7800

Wtedy wczytujesz sobie po linijce i piszesz funkcję Split rozdzielającą dane po znaku |.

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