bah pour le signe c'est très simple..
Au lieu de mettre :
Il suffit de mettre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 /* On vient de finir un chiffre */ if ( start >= 0 ) { ch1[end] = '\0' ; sscanf ( ch1, "%f", &((*t)[(*pos)]) ); (*pos)++; }
Ce qui signifie :
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 /* On vient de finir un chiffre */ if ( start >= 0 ) { ch1[end] = '\0' ; if ( (start > 0) && (ch[start-1] == '-' ) ) { sscanf ( ch1, "%f", &((*t)[(*pos)-1]) ); (*t)[(*pos)-1]) = - (*t)[(*pos)-1] ; } else { sscanf ( ch1, "%f", &((*t)[(*pos)]) ); (*pos)++; } }
au moment de stocker un chiffre, si le caractère précédent était un -, on lit le chiffre en le stockant à la place du -, et on le change de signe sans incrémenter le nombre d'éléments, sinon on fait normalement.
Partager