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

c++ wczytywanie konkretnej linijki po danym stringu z pliku.

0 głosów
1,617 wizyt
pytanie zadane 19 września 2016 w C i C++ przez R4leY Nowicjusz (180 p.)
edycja 19 września 2016 przez Patrycjerz

Witam mam problem otóż napisalem program który sprawdza istnienie stringa w pliku txt, chcialbym zeby wypisal z pliku jeszcze nastepna linie i tu mam problem otoz nie wiem jak to zrobic:

#include <iostream>
#include <fstream>
#include <conio.h>
#include <string.h>
using namespace std;

int main(){
string tekst;
string wymiary;
cout<<"Podaj wymiary:";
cin>>wymiary;
fstream plik("wymiary.txt");
getch();
while(!plik.eof())
{
    getline(plik,tekst);
    if(!(string::npos == tekst.find(wymiary)))
    cout<<"Znaleziono";
}
plik.close();

return 0;
}
komentarz 19 września 2016 przez Patrycjerz Mędrzec (192,320 p.)
Stwórz flagę, cokolwiek?
komentarz 19 września 2016 przez R4leY Nowicjusz (180 p.)

Jestem początkującym programista moglbys wytlumaczyc to najprosciej jak sie da ?

1 odpowiedź

0 głosów
odpowiedź 19 września 2016 przez plkpiotr Stary wyjadacz (12,420 p.)
edycja 20 września 2016 przez plkpiotr

Spróbuj, czegoś takiego - to chyba najprostsze rozwiązanie ; )

Bazuję na twoim kodzie, jeżeli u Ciebie dział poprawnie to zadziała : )

Sposób działania: jeżeli znajdzie szukaną linię to oprócz jej wyświetlenia pobierze następną i ją wyświetli.

#include <iostream>
#include <fstream>
#include <conio.h>
#include <string.h>
using namespace std;

int main()
{
    string tekst;
    string wymiary;
    cout << "Podaj wymiary:";
    cin >> wymiary;
    fstream plik("wymiary.txt");
    getch();
    while (!plik.eof())
    {
        getline(plik, tekst);
        if (!(string::npos == tekst.find(wymiary)))
        {
            cout << "Znaleziono: " << tekst << endl;
			getline(plik, tekst);
			cout << "A o to następny wiersz: " << tekst << endl;
		}
    }
    plik.close();
    return 0;
}

 

komentarz 20 września 2016 przez R4leY Nowicjusz (180 p.)
Ok tylko nasuwa sie problem jesli mam w pliku textowym wyraz dom a pod nim wyraz mieszkanie to czy wpisze d czy dom nie ma roznicy a jak zrobic zeby nastepna linia pokazywala sie tylko przy pelnym poprawnym stringu ?
komentarz 21 września 2016 przez plkpiotr Stary wyjadacz (12,420 p.)
Wydaje mi, się, że musiałbyś dorzucić dodatkowy warunek, dodatkowy if, lub połączyć go z istniejącym za pomocą operatora &&.

Podobne pytania

+1 głos
1 odpowiedź 13,056 wizyt
pytanie zadane 2 stycznia 2016 w C i C++ przez thekibi27 Bywalec (2,110 p.)
0 głosów
2 odpowiedzi 1,268 wizyt
0 głosów
2 odpowiedzi 1,121 wizyt

93,728 zapytań

142,668 odpowiedzi

323,283 komentarzy

63,287 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...