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 :

Utilisation des Strings mon programme plante


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 17
    Points : 5
    Points
    5
    Par défaut Utilisation des Strings mon programme plante
    Bonjour à tous,
    Je débute en C++ , j'ai fait un programme qui envoie et récupère des données sous formes de chaines de charactéres par un port RS232 (COM 1). Mais j'ai un probléme avec le traitement des données reçue.
    Elles sont supposées être de la forme "X Y Z" (avec X Y et Z des entiers relatifs) mais des fois je sois les données en deux parties différentes. (ce n'est pas ma question principale mais si qu'un sait comment régler ce problème sachant que j'utilise la bibliotéque rs232 de Teunis Van Beelen ...)
    Mon principale problème vient de du traitement de ces données sous la forme de string. En effet la fenêtre de mon programme se ferme au bout d'un moment (quelques secondes généralement) et j'ai isolé la source à la ligne T=T.substr(X.size()+1); car si je l’enlève le programme fonctionne correctement et fait des boucles infinies.

    Merci pour votre aide,

    Lilocratch

    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
     
    #include <iostream>
    #include "rs232.h"
    #include <string>
    #include <math.h>
    #include <windows.h>
    using namespace std;
     
    string read(unsigned char buf[])
    {
     
    string T=(char* )buf;
    if(T[0]==' ') T=T.substr(T.find(' ')+1);
    string X =T.substr(0,T.find(' '));
    T=T.substr(X.size()+1);//la ligne en question
    return T;
     
     }

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 116
    Points : 32 968
    Points
    32 968
    Billets dans le blog
    4
    Par défaut
    Tu ne vérifies absolument rien à aucun moment, dès qu'il n'y a pas d'espace, forcément ça crash. std::string::substr peut lancer une exception, comme l'indique la doc.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    Ok merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mon programme plante
    Par yougoo dans le forum Débuter
    Réponses: 10
    Dernier message: 06/03/2011, 04h06
  2. Réponses: 5
    Dernier message: 15/09/2010, 15h24
  3. Problème avec strcpy : mon programme plante
    Par Titi41 dans le forum Débuter
    Réponses: 4
    Dernier message: 06/11/2008, 12h02
  4. Envoyer des string à un programme externe
    Par darkfrag dans le forum C++
    Réponses: 1
    Dernier message: 26/03/2008, 15h47
  5. Utilisation des fichiers en programmation
    Par fred61 dans le forum Débuter
    Réponses: 3
    Dernier message: 21/11/2007, 22h38

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