C++ Jak wyszukać wiersz w pliku txt

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
adasko_83
Piegowaty Guziec
Piegowaty Guziec
Posty: 15
Rejestracja: 28 gru 2009, 15:30
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86

C++ Jak wyszukać wiersz w pliku txt

Post autor: adasko_83 »

Witam. Mam taki maly programik. Chcę aby wypisywał mi jedną linię którą podaję na wejsciu lecz wypisuje cały plik. Jak go przerobić aby wypisywał wiersz w którym znajduje się podana fraza

Kod: Zaznacz cały

int main( )
{
   fstream strumien ;
   string cos;
   
   cout << "Podaj haslo do wyszukiwania: " << endl;
   cin >> cos;
   strumien.open( "plik.txt", ios::out | ios::in ) ;
   while(!strumien.eof())
{
getline(strumien,cos);
cout<<cos<<endl;

}

}
Awatar użytkownika
borzole
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 127
Rejestracja: 10 sie 2010, 11:48
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: C++ Jak wyszukać wiersz w pliku txt

Post autor: borzole »

http://www.cplusplus.com/reference/string/string/find/

Kod: Zaznacz cały

#include <fstream>
#include <iostream>
#include <string>

using namespace std;

int main(){
	string pattern;
	cout << "Podaj haslo do wyszukiwania: " << endl;
	cin >> pattern;

	ifstream plik("plik.txt");
	if (!plik){
		cerr<< "nima plika" << endl;
		return 1;
	}

	string line;
	size_t found;
	int i=1;
	while (getline(plik, line)){
		found = line.find(pattern);
		if ( found != string::npos ){
			cout<< "mamy go    : " << pattern << endl;
			cout<< "    linia  : " << line << endl;
			cout<< "    wiersz : " << i << endl;
			cout<< "    kolumna: " << int(found) << endl;
		}
		i++ ;
	}
	plik.close();
}
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 23 gości