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

VPS Starter Arubacloud
0 głosów
1,208 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,340 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,043 wizyt
pytanie zadane 2 stycznia 2016 w C i C++ przez thekibi27 Bywalec (2,110 p.)
0 głosów
2 odpowiedzi 1,082 wizyt
0 głosów
2 odpowiedzi 699 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...