Szukanie frazy w linii pliku.txt
Ostatnio zmodyfikowano 2018-09-17 12:40
Groudz377 Temat założony przez niniejszego użytkownika |
Szukanie frazy w linii pliku.txt » 2018-09-15 16:49:04 Cześć, pisze program, który ma zapisywać i odszukiwać imiona i nazwiska znajdujące się w dwóch osobnych plikach. Każde imię/nazwisko zapisuje w kolejnej linii. Gdy chce wyszukać nazwisko wpisuje imię i zapisuje numer linii w, której zostało odnalezione, żeby móc w ten sposób znaleźć linię z nazwiskiem w drugim pliku. program wykonuje się do if(jest!=string::npos). Próbowałem już to robić na kilka sposobów np. porównywaniem stringa szukanego z obecnie wczytaną linią (tekst): if(imies==tekst) i też nie działa, chociaż z tego co rozumiem w C++ powinno. void znajdz() { cout << "Szukaj po:" << endl << "1.imieniu" << endl << "2.nazwisku" << endl << "3.menu" << endl; int wybor; cin >> wybor; switch( wybor ) { case 1: { imiona.open( "imiona.txt", ios::out | ios::app ); if( !imiona.good() == true ) { cout << "Nie udało się odnaleźć pliku." << endl; } string imies; cout << "podaj imie: " << endl; cin >> imies; int a = 0; while( !imiona.eof() ) { string tekst; getline( imiona, tekst ); int jest = tekst.find( imies ); if( jest != string::npos ) { cout << "tu jestem" << endl; string nazwisko; nazwiska.open( "nazwiska.txt", ios::out | ios::app ); if( !nazwiska.good() == true ) { cout << "Nie udało się odnaleźć pliku." << endl; } for( int i = 0; i < a; i++ ) { getline( nazwiska, nazwisko ); } getline( nazwiska, nazwisko ); cout << nazwisko << imies << endl; nazwiska.close(); } a++; } imiona.close(); break; }
|
|
pekfos |
» 2018-09-15 16:56:14 Otwierasz plik do zapisu, nie do odczytu. |
|
Groudz377 Temat założony przez niniejszego użytkownika |
» 2018-09-17 00:09:54 Wielkie dzięki, program działa. Mam jeszcze jeden mały problem mianowicie, czasem program zaczyna zapisywać nazwiska od np.6-ego wiersza w pliku, co ciekawe dzieje się tak tylko w nazwiskach, pomimo, że kod funkcji wczytaj dla imion jest identyczny. #include "pch.h" #include <iostream> #include <fstream> #include <cstdlib> #include <string> #include "Rekord.h"
using namespace std; fstream imiona; fstream nazwiska; void menu(); void wczytaj() { string imie, nazwisko; imiona.open( "imiona.txt", ios::app | ios::out ); if( !imiona.good() == true ) { cout << "Nie udało się odnaleźć pliku." << endl; } cout << "podaj imie: " << endl; cin >> imie; imiona << imie << endl; imiona.close(); nazwiska.open( "nazwiska.txt", ios::app | ios::in ); if( !nazwiska.good() == true ) { cout << "Nie udało się odnaleźć pliku." << endl; } cout << "podaj nazwisko: " << endl; cin >> nazwisko; nazwiska << nazwisko << endl; nazwiska.close(); }
|
|
pekfos |
» 2018-09-17 12:40:28 Więc pewnie nie jest identyczny. |
|
« 1 » |