Nowe posty

Autor Wątek: Chyba brak biblioteki  (Przeczytany 2373 razy)

KelThuzad

  • Gość
Chyba brak biblioteki
« dnia: 2016-06-02, 22:19:46 »
Ze stronki wziąłem takie program do przetestowania:
#include <iostream>
#include <string>
#include <regex> //jeśli mamy standard C++0x
//#include <boost/regex.hpp> // jeśli nie mamy kompilatora zgodnego z standardem C++0x, musimy sami zainstalować bibliotekę boost
//using namespace boost; // jw.;narzędzia biblioteki boost zmajdują się w przestrzeni nazw boost
using namespace std; // w C++0x narzędzia z <regex> znajdują się w  std

int main()
{
    string tekst;
    int line = 0;
    regex wzorzec( "\\w* to \\w*" );

    cout << "Witaj!\n\007";
    cout << "Pisz. Aby skończyć wćiśnij [Ctrl] + [z] w nowym wierszu\n\n";

    while( getline( cin, tekst ) )
    {
        smatch wynik; // tutaj będzie zapisany wynik
        ++line;
        if( regex_search( tekst, wynik, wzorzec ) )
             cout << "Linia " << line << " : " << wynik[ 0 ] << '\n';

        cin >> tekst;
    }
    system( "pause" );
    return 0;
}

ale po skompilowaniu mam coś takiego:
terminate called after throwing an instance of 'std::regex_error'
  what():  regex_error

I czy dobrze mi się wydaje że nie mam biblioteki. I jeśli tak to może mi powiedzieć jak zainstalować bibliotekę w Qt Creator 3.5.1

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3059
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: Chyba brak biblioteki
« Odpowiedź #1 dnia: 2016-06-03, 12:32:44 »
Źle ci się wydaje. Program się kompiluje bez problemu w linii komend, bez dodatkowych flag (poza C++11) i działa (choć nie wiem, co dokładnie ma robić, bo regexp wygląda na lekko niekompletny).

Plus-minus w Linuksie to będzie Ctrl-D a nie Ctrl-Z i system("pause") jest bez sensu.

Błąd wynika z nie obsłużonego błędu biblioteki RegExp, prawdopodobnie na etapie konstrukcji instancji wzorzec. Poczytaj tutaj, zwłaszcza odpowiedź Joachima Pileborga.
« Ostatnia zmiana: 2016-06-03, 12:42:28 wysłana przez Paweł Kraszewski »
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy