Witam, tworzę program, który m.in. będzie wyszukiwał w pliku tekstowym słowa, które poda się mu w konsoli. Całość jest w do while (do menu), a w nim switch. I zrobiłem coś, znajduje tego użytkownika w pliku po podaniu imienia, nazwiska, klasy oraz wieku, który ma (jakiś tam uczeń w tej bazie), tylko że jest w stanie wyszukać te wszystkie informacje dla pierwszego użytkownika w tej bazie, kolejnych tak jakby nie widział, nie wyświetla ich. Pomógłby mi ktoś?
Edit: Dodam, że dane w pliku zapisane są w następujący sposób: Jan Kowalski 2TIa 17 - czyli kolejno imię, nazwisko, klasa oraz wiek i jest to zapisywane w pliku jedno pod drugim, nie w rzędzie.
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
int main()
{
fstream p1;
ifstream p2;
struct baza
{
string imie;
string nazw;
string klasa;
string wiek;
}u;
string sz;
int x;
do
{
cout<<"MENU GLOWNE"<<endl;
cout<<"-----------------"<<endl;
cout<<"1. Dopisz dane"<<endl;
cout<<"2. Wyszukiwanie danych"<<endl;
cout<<"3. Popraw dane"<<endl;
cout<<"4. Usun rekord"<<endl;
cout<<"5. Wyswietl wszystkie dane"<<endl;
cout<<"6. KONIEC"<<endl;
cout<<"Wybierz opcje: "; cin>>x;
cout<<""<<endl;
switch(x)
case 2:
system("cls");
p2.open("dane.txt", ios::in);
if(p2.good())
{
{
cout<<"Wybrales opcje wyszukiwania danych"<<endl;
cout<<"Podaj imie, nazwisko, klase lub wiek ucznia: ";
cin>>sz;
if(p2.good())
{
p2>>u.imie;
p2>>u.nazw;
p2>>u.klasa;
p2>>u.wiek;
if(sz==u.imie)
{
cout<<"Znaleziono!"<<endl;
cout<<u.imie<<" "<<u.nazw<<" "<<u.klasa<<" "<<u.wiek;
}
else if(sz==u.nazw)
{
cout<<"Znaleziono!"<<endl;
cout<<u.imie<<" "<<u.nazw<<" "<<u.klasa<<" "<<u.wiek;
}
else if(sz==u.klasa)
{
cout<<"Znaleziono!"<<endl;
cout<<u.imie<<" "<<u.nazw<<" "<<u.klasa<<" "<<u.wiek;
}
else if(sz==u.wiek)
{
cout<<"Znaleziono!"<<endl;
cout<<u.imie<<" "<<u.nazw<<" "<<u.klasa<<" "<<u.wiek;
}
}else cout<<"Blad otwarcia pliku!";
}
p2.close();
}else cout<<"Error! Nie udalo otworzyc sie pliku!"<<endl;
cout<<""<<endl<<endl;
cout<<"Wcisnij klawisz ENTER by powrocic do MENU"<<endl;
system("pause");
system("cls");
break;
}while(x!=6);
return 0;
}