Napisałem taki krótki programik, który wyciąga miasto, ulice itd. z tekstu i nam je wypisuje. Pętla wykonuje się 10 razy, ale problem jest tego rodzaju, że już za drugim razem podając adres program nie wyświetla mi tylko 1szego parametru (ulicy) , czyli mojego podwzorca. Gdzie jest problem?
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main()
{
string tekst;
regex wzorzec("(\\w*)\\s(\\d+-\\d+)\\s(\\w*)\\s(\\d*)");
cout << "Podaj adres w formie <ulica kod(np.70-777), miasto, numer"<<endl;
for(int i=0;i<10;i++){
getline(cin,tekst);
smatch wynik;
if(regex_search(tekst, wynik, wzorzec)){
try{
// for( int i=0; i<wynik.size()-4; ++i){
cout << "Ulica: " << wynik[1] <<endl;
cout << "Kod: " << wynik[ 2 ] <<endl;
cout << "Miasto: " << wynik[3 ] <<endl;
cout << "Numer: " << wynik[4 ] <<endl;
}
catch(...){
std::cout << "Zly wzorzec.\n";
}
}
//else
// cout<<"Niepoprawny adres"<<endl;
cin >> tekst;
}
}