J'ai un programme qui fonctionnait bien sous SuSE 7.2
Je viens d'installer SuSE 8.1, et là ça va plus.
Voici la partie du code.
C'est une méthode d'une classe, et c'est là que ça plante,
lorsque j'essaye d'affichier ou d'utiliser le float (f_ret en l'occurence) :
Code :
- int CSti::GetInverterVin(char* &asVin){
- int iTypeVal,iRet;
- char commande[10];
- float f_ret;
- int ret;
- ret=CInverters::GetInverterVin(asVin);
- printf("On reçoit la chaine: %s\n",asVin);
- iRet=atoi(asVin);
- printf("en entier ça donne : %d\n",iRet);
- printf("fret vaut : \n%f\n",f_ret);
- try {
- f_ret=strtod(asVin,NULL);
- if(f_ret==-1)
- printf("erreur strtod\n" );
- } catch (...){
- printf("Ohhh.......problème\n" );
- }
|
Donc je reçois une donnée en chaine de caractères.
Je l'affiche, pas de problème.
Je la transforme en entier, et j'affiche, pas de problème.
Mais dès que j'utilise un float, ça va plus.
Encore plus bizarre (et c'est peut-être de là que vient l'erreur.)
Si j'ajoute la ligne :
Code :
- int CSti::GetInverterVin(char* &asVin){
- int iTypeVal,iRet;
- char commande[10];
- int ret;
- float f_ret;
- ret=CInverters::GetInverterVin(asVin);
- printf("On reçoit la chaine: %s\n",asVin);
- iRet=atoi(asVin);
- printf("en entier ça donne : %d\n",iRet);
- float nouveau_float=5;
- printf("Le nouveau float vaut : %f\n",nouveau_float);
- printf("fret vaut : \n%f\n",f_ret);
- try {
- f_ret=strtod(asVin,NULL);
- if(f_ret==-1)
- printf("erreur strtod\n" );
- } catch (...){
- printf("Ohhh.......problème\n" );
- }
|
ça ne va plus non plus.
Comme si àje ne pouvais pas utiliser de float.
.....une idée ???????
Message édité par warp le 04-02-2003 à 18:12:25
---------------
Il n'est pas nécéssaire de réussir pour persévérer.