Wczytywanie z pliku linii, w której jest dane słowo

0

Program po wybraniu 1 ma wczytać nazwę miasta, wyszukać w pliku tekstowym to miasto i wyświetlić całą linię razem z godzinami, np. w pliku jest:

Olsztyn 3:00 4:00 5:00
Warszawa 6:30 6:00 2:00

Po wpisaniu Warszawa program ma wyświetlić z pliku linię Warszawa 6:30 6:00 2:00. Proszę o pomoc jak to zrobić :)

#include <iostream>
#include <cstdio>
#include <fstream>

using namespace std;

int main()
{
    int liczba;
    string wiersz, miejscowosc, godziny;
    fstream plik;
    cout<<"                     ROKLAD JAZDY AUTOBUSOW"<<endl<<endl;
    cout<<"1.Wyszukiwarka polaczen"<<endl<<"2.Dodaj polaczenie"<<endl<<"3.Usun polaczenie"<<endl<<endl;
    cout<<"Wybierz: ";
    cin>>liczba;
    switch(liczba)
    {
    case 1:
          system("cls");
          cout<<"Dokad chcesz jechac?"<<endl;
          break;
    case 2:
          system("cls");
          cout<<"Miejscowosc: ";
          cin>>miejscowosc;
          cout<<"Godziny odjazdu: ";
          cin.sync();
          getline(cin, godziny);
          plik.open("rozklad.txt",ios::out|ios::app);
          plik<<endl<<miejscowosc<<" "<<godziny;
          plik.close();
          cout<<endl<<"Polaczenie zostalo dodane!";
          break;
    case 3:
          system("cls");
          cout<<"Miejscowosc, ktora chcesz usunac: ";
          break;
    }
    cin.ignore();
    getchar();
    return 0;
}
0
#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>
#include <vector>
using namespace std;

class Line : public string {
    friend std::istream & operator>>(std::istream & is, Line & line) {   
        return std::getline(is, line);
    }
};

int main() {
    string phrase = "Olsztyn";
    vector<Line> lines;
    copy_if(
        istream_iterator<Line>(cin),
        istream_iterator<Line>(),
        back_inserter(lines),
        [&](const Line& line) { return line.find(phrase) != string::npos; }
    );
    copy(lines.begin(), lines.end(), ostream_iterator<Line>(cout, "\n"));
    return 0;
}

http://ideone.com/EZaq9O

1

jeszcze noob version. //nie wiem czy to dobrze (nie lubię C++), no ale,.

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <sstream>

using namespace std;

int main(void) {
    ifstream file("plik.txt");
    if(!file.good()) exit(EXIT_FAILURE);

    string line, city, tofind;
    cin >> tofind;
    while(getline(file,line)) {
        istringstream iss(line);
        iss >> city;
        if(city == tofind)
            cout << line << endl;
    }
    file.close();
    return 0;
}

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

Robot: DotBot