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; }
Partager