Witam, mam pytanie odnośnie wyszukania konkretnej linijki w pliku tekstowym. Da się zrobić tak, że ktoś wpisze na przykładzie moim nazwisko i wyszuka go w pliku, a potem odczyta po tym nazwisku kolejne dwie linie? Chciałem zrobić coś na wzór prostego bankomatu. Szukałem z godzinę w internecie, próbowałem tych rozwiązań lecz to wciąż nie to co chciałbym osiągnąć lub nie działa poprawnie.
#include <iostream>
#include <windows.h>
#include <fstream>
using namespace std;
int choice,wrong=0;
void zakladanieKarty()
{
do{
cout<<"Witaj! Aby zalozyc karte wpisz '1', jesli nie wpisz '2': ";
cin>>choice;
if(cin.fail())
{
cout<<endl<<"Wybierz 1 lub 2... \n";
cin.clear();
cin.sync();
}else if(choice<=0 || choice>=3)
{
cout<<endl<<"Wybierz 1 lub 2... \n";
cin.clear();
cin.sync();
}else wrong=1;
}while(wrong==0);
}
string imie,nazwisko;
int nr_tel,pin;
fstream uchwyt;
int main()
{
zakladanieKarty();
wrong=0;
if(choice==1)
{
system("cls");
cout<<"Podaj imie: ";
cin>>imie;
cout<<"Podaj nazwisko: ";
cin>>nazwisko;
cout<<"Podaj numer telefonu: ";
cin>>nr_tel;
do{
if(cin.fail())
{
cout<<endl<<"Wpisz poprawny numer telefonu..."<<endl;
cin.clear();
cin.sync();
}else if(nr_tel<100000000 || nr_tel>999999999)
{
cout<<endl<<"Wpisz poprawny numer telefonu..."<<endl;
cin.clear();
cin.sync();
}else wrong=1;
}while(wrong==0);
wrong=0;
do{
cout<<"Stworz PIN: ";
cin>>pin;
if(cin.fail())
{
cout<<endl<<"Wpisz poprawny numer pin..."<<endl;
cin.clear();
cin.sync();
}else if(pin<1000 || pin>9999)
{
cout<<endl<<"Wpisz poprawny numer pin..."<<endl;
cin.clear();
cin.sync();
}else wrong=1;
}while(wrong==0);
wrong=0;
uchwyt.open("karty.txt",ios::out | ios::app);
uchwyt<<imie<<endl;
uchwyt<<nazwisko<<endl;
uchwyt<<nr_tel<<endl;
uchwyt<<pin<<endl;
uchwyt<<"--------------------------"<<endl;
uchwyt.close();
exit(0);
}else if(choice==2)
{
uchwyt.open("karty.txt",ios::in);
system("cls");
if(uchwyt.good()==false)
{
cout<<"Na poczatku zaloz karte!";
getchar();getchar();
exit(0);
}
string linia,nazwisko2;
cout<<"Podaj nazwisko: ";
cin>>nazwisko2;
do
{
getline(uchwyt,linia);
}while (linia != "");
while(uchwyt >> nazwisko2)
{
if(nazwisko2 == linia)
{
cout<<linia<<endl;
}
}
uchwyt.close();
}
return 0;
}