IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

problem lors de l'exécution d'un program utilise "regex"(la console affiche une excepetion)


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Par défaut problem lors de l'exécution d'un program utilise "regex"(la console affiche une excepetion)
    j'ai un problème avec regex :voici le programme a peut prés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    .....
    #include<regex>
    regex rr("[^0-9_&\xE0-\xFF]");
    ifstream tp2.......
    string line;
    cout<<regex_replace(line, rr, (string)" ") << endl;
    .....
    lors de l'exucution de ce code la console affiche cette message:
    terminate called after throwing an instance of 'std::regex_error'
    what(): regex_error

    This application has requested the Runtime to terminate it in an unusual way.
    Please contact the application's support team for more information.

    Process returned 255 (0xFF) execution time : 12.700 s
    Press any key to continue.

    et il ya un message qu'il s'affiche sur une fenêtre Windows au même tempe que l'affichage de console et il contient:

    tp2.exe a cessé de fonctionner

    Un problème a fait que le programme a cessé de fonctionner
    correctement.Windows va fermer ce programme et vous indique si une solution est disponible.

    svp aider moi et donner moi une solution suffisant pour résoudre le problème et merccccccccccccccccccccci

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2012
    Messages : 11
    Par défaut
    Si tu vas sur la page http://en.cppreference.com/w/cpp/regex/regex_error, tu verras qu'il est possible de récupérer la raison d'une exception regex_error.

    En modifiant le sample en bas de la page avec ta regex, on obtient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <regex>
    #include <iostream>
     
    int main()
    {
        try {
            std::regex re("[^0-9_&\xE0-\xFF]");
        } catch(const std::regex_error& e)
        {
            std::cout << "regex_error caught: " << e.what() << '\n';
            if(e.code() == std::regex_constants::error_brack)
                  std::cout << "The code was error_brack\n";
        }
    }
    En compilant et exécutant ce code, on obtient la sortie suivante :

    regex_error caught: regex_error
    The code was error_brack
    Ceci indique que la lib regex considère que les '[' et ']' ne sont pas correctement matchés.

    Visiblement, ils sont correctement matchés, cependant il existe une subtilité de syntaxe dans les regexps c++, voir cette question sur Stackoverflow : http://stackoverflow.com/questions/8...r-the-compiler

    D'après cette page : http://gcc.gnu.org/onlinedocs/libstd...tatus.iso.2011 il semblerait que le support de C++ par GCC ne soit pas encore complet (si tu utilises GCC).
    Dans ce cas, il vaut mieux utiliser boost::regex à la place.

  3. #3
    Membre actif
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Par défaut
    mr merci merci boucoups pour votre réponse parce que j'ai commencer de perdre l'espaoir de trouver où est le problem.
    mais j' éssai de faire sa:
    #include <boost/regex.hpp> au lieu de ca #include<regex>
    mais le compilateur affiche ca:
    fatal erreur no such a file or directory

    et un autre chose
    est ce que lors j'utilisa ca est ce que je peux utililise le reste comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #include <boost/regex.hpp>
    using namespace boost;
    int main(){
    string line;
     
     
            regex r1("[^a-zA-Z0-9_&\xE0-\xFF\xC0-\xDF]");
     
     
     
     
     
    ifstream tp2......
     
    if(tp2){
            while(!tp2.eof()){
     
             getline(tp2,line);
     
              cout<<regex_replace(line, r1, (string)" ") <<endl;
    .
    .
    .
    .
    (regex_replace:est ce je peux le utiliser???si non svp donner un autre fonction dans ce cas.)
    et merci merci

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2012
    Messages : 11
    Par défaut
    Je surveille les sujets où je réponds, pas la peine d'envoyer des MP, ni de dire "c'est urgent"

    j' éssai de faire sa:
    #include <boost/regex.hpp> au lieu de ca #include<regex>
    mais le compilateur affiche ca:
    fatal erreur no such a file or directory
    Il faut avoir installé boost pour que ça marche.
    Tu n'as pas dit quelle plateforme et quel compilateur tu utilises.

    est ce que lors j'utilisa ca est ce que je peux utililise le reste comme ca:
    Normalement oui, la librairie regex c++11 est calquée sur celle de boost, les apis sont quasiment les mêmes.

  5. #5
    Membre actif
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Par défaut
    je travailler sous windows 7;
    et j'utilise le IDE codeblock.

    merci pour vos réponses .a propos le boost est ce qu'il ya un lien d'un site pour telecharger le boost svp???

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    www.boost.org.

    Ou alors, changer de compilateur pour en prendre un qui implémente les regex, comme visual studio.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/07/2012, 14h24
  2. Réponses: 4
    Dernier message: 22/07/2009, 11h01
  3. [MySQL] Probleme lors de l'excution d'une requete
    Par JmL40 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/06/2007, 13h21
  4. probleme lors du passage de paramètre
    Par maxmj dans le forum ASP
    Réponses: 4
    Dernier message: 18/11/2003, 00h15
  5. problem lors de l'ecriture d'un fichier
    Par gemai dans le forum C
    Réponses: 20
    Dernier message: 29/08/2003, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo