• 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.

Object Storage Arubacloud
0 głosów
1,229 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ź 12,081 wizyt
pytanie zadane 2 stycznia 2016 w C i C++ przez thekibi27 Bywalec (2,110 p.)
0 głosów
2 odpowiedzi 1,088 wizyt
0 głosów
2 odpowiedzi 758 wizyt

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...