Cześć,
próbuję stworzyć swój pierwszy program, w którym mam dynamicznie zaalokowaną pamięć na strukturę - użytkownik podaje dane pracowników firmy (Imie, Nazwisko, Pesel, Stawka), które następnie są zapisywane do pliku (i ewentualnie z tego pliku odczytywane).
Problem pojawił się, gdy chciałem zrobić funkcję wyszukiwania w tej strukturze (wczytanej z pliku). Mianowicie chciałbym, aby po wpisaniu przez użytkownika jakiegoś nr Pesel program sprawdził czy w tej strukturze taki pesel wystąpił a następnie wyświetlił pozostałe dane, od osoby, do której taki pesel jest przypisany. O ile sprawdzenie czy pesel występuje jakoś udało mi się osiągnąć, to dalszej części już niestety nie jestem w stanie rozwiązać...
Dodam, że struktura nie jest tablicą. Czy da się to osiągnąć bez tworzenia tablicy? (dla osoby stawiającej pierwsze kroki w c++).
struct baza
{
string imie, nazwisko, stanowisko, stawka;
long long int pesel;
};
baza * wsk = new baza;
[.....]
Funkcja wyszukiwania
{
cout << "Podaj nr PESEL, aby wyszukac pracownika: " << endl;
string pesel_tmp;
cin >> pesel_tmp;
cout << endl << endl;
fstream plik;
plik.open("pracownicy.txt", ios::in); //otwarcie pliku do odczytu
if (plik.good()==false)
{
cout << "Blad! Plik nie istnieje!" << endl;
exit(0);
}
string linia;
int nr_linii=3; //na 3ciej linii znajduje sie pierwszy pesel
bool flaga=0;
while (getline(plik, linia))
{
switch(nr_linii)
{
case 3:
if (linia == pesel_tmp)
{
flaga=1;
}
break;
}
nr_linii+6; //kolejny pesel jest 6 linii dalej
}
if (flaga==1)
cout << "Znalazlem pracownika" << endl;
if (flaga==0)
cout << "Nie znalazlem pracownika "<< endl;
plik.close();
}
EDIT: To wyszukiwanie niby działa, ale jest bez sensu napisane - nr_linii+6; jest w ogóle tutaj nie potrzebne... Ehhh...