• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Szukanie linijki w pliku txt fstream C++

Cloud VPS
0 głosów
661 wizyt
pytanie zadane 12 października 2019 w C i C++ przez Kondz10 Początkujący (270 p.)

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;
}

 

komentarz 12 października 2019 przez Kondz10 Początkujący (270 p.)
Dzięki wielkie

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 280 wizyt
0 głosów
3 odpowiedzi 1,597 wizyt
pytanie zadane 18 października 2018 w Java przez Virius Początkujący (490 p.)
0 głosów
0 odpowiedzi 149 wizyt

93,485 zapytań

142,417 odpowiedzi

322,767 komentarzy

62,898 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...